大学计算机C语言期末考试复习试题及答案(20套)(1) 联系客服

发布时间 : 星期二 文章大学计算机C语言期末考试复习试题及答案(20套)(1)更新完毕开始阅读769908d6ec3a87c24028c4ed

C:.2E0 D:1.3E

答案:C 第3题 (1.0分) 题号:606

已定义 ch 为字符型变量,以下赋值语句中错误的是()。 A:ch='\\'; B:ch=62+3; C:ch=NULL; D:ch='\\xaa';

答案:A 第4题 (1.0分) 题号:3012 以下程序段的输出结果为().

char c[]=\i=0;

do ;while(c[i++]!='\\0');printf(\A:abc B:ab C:2 D:3

答案:D 第5题 (1.0分) 题号:110

C 语言中,char 类型数据占()。 A:1个字节

B:2个字节 C:4个字节 D:8个字节

答案:A

第6题 (1.0分) 题号:547 int (*p)[6]; 它的含义为()。

A:具有6个元素的一维数组 B:定义了一个指向具有6个元素的一维数组的指针变量 C:指向整型指针变量

D:指向6个整数中的一个的地址

答案:B 第7题 (1.0分) 题号:3181 若有定义:int *p[3];,则以下叙述中正确的是(). A:定义了一个基类型为 int 的指针变量 p, 该变量具有三个指针 B:定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针 C:定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素 D:定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素 答案:B 第8题 (1.0分) 题号:523

函数的形式参数隐含的存储类型说明是 ()。 A:extern B:static C:register D:auto

答案:D 第9题 (1.0分) 题号:95 下列变量说明语句中,正确的是()。 A:char:a b c; B:char a;b;c; C:int x;z; D:int x,z;

答案:D

第10题 (1.0分) 题号:168 若输入 ab,程序运行结果为()。 main() { static char a[2]; scanf(\

printf(\ } A:a,b B:a, C:b,

D:程序出错

答案:C

第11题 (1.0分) 题号:2821 经 下 列 语 句 定 义

后 ,sizeof(x),sizeof(y),sizeof(a),sizeof(b) 在微机上的值分别为(). char x=65; float y=7.3; int a=100; double b=4.5; A:2,2,2,4 B:1,2,4,4 C:1,4,4,8 D:2,4,4,8

答案:C

第12题 (1.0分) 题号:611 以下 for 循环的执行次数是

for(x=0,y=0;(y=123)&&(x<4);x++);()。 A:是无限循环 B:循环次数不定 C:4次 D:3次

答案:C

第13题 (1.0分) 题号:561 以下叙述中正确的是 ()。 A:C 程序中注释部分可以出现在程序中任意合适的地方

B:花括号“{“和”}”只能作为函数体的定界 符

C:构成 C 程序的基本单位是函数,所有函数名都可以由用户命名 D:分号是 C 语句之间的分隔符,不是语句 的一部分

答案:A 第14题 (1.0分) 题号:429

假定所有变量均已正确定义,下列程序段运行后 x 的值是()。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3; A:14 B:4 C:15 D:3

答案:B 第15题 (1.0分) 题号:2782 以下数据中,不正确的数值或字符常量是(). A:8.9e1.2 B:10 C:0xff00 D:82.5

答案:A

第16题 (1.0分) 题号:2374 以下说法正确的是

A:C 语言程序总是从第一个的函数开始执行

B:在 C 语言程序中,要调用函数必须在 main()函数中定义

C:C 语言程序总是从 main()函数开始执行 D:C 语言程序中的 main()函数必须放在程 序的开始部分

答案:C

第17题 (1.0分) 题号:3159

在位运算中,操作数每左移一位,其结果相当于().

A:操作数乘以2 B:操作数除以2 C:操作数除以4 D:操作数乘以4

答案:A

第18题 (1.0分) 题号:599

假设所有变量均为整型,则表达式 (a=2,b=5,b++,a+b)的值是()。 A:7 B:8 C:6 D:2

答案:B

第19题 (1.0分) 题号:3052 以下叙述正确的是().

A:在 C 程序中,main 函数必须位于程序的前面

B:C 程序的每行中只能写一条语句 C:C 语言本身没有输入输出语句

D:在对一个 C 程序进行编译的过程中,可 发现注释中的拼写错误

答案:C

第20题 (1.0分) 题号:3168 若 x=2,y=3则 x&y 的结果是(). A:0 B:2 C:3 D:5

答案:B

第21题 (1.0分) 题号:3091 以下 for 循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);(). A:是无限循环 B:循环次数不定 C:4次 D:3次

答案:C

第22题 (1.0分) 题号:160

C 语言的 if 语句嵌套时,if 与 else 的配对关系是()。

A:每个else总是与它上面的 近的if 配对 B:每个 else 总是与 外层的 if 配对 C:每个 else 与 if 的配对是任意的 D:每个 else 总是与它上面的 if 配对

答案:A

第23题 (1.0分) 题号:379 以下不正确的叙述是()。

A:在 C 程序中所用的变量必须先定义后使用

B:程序中,APH 和 aph 是两个不同的变量 C:若 a 和 b 类型相同,在执行了赋值语句 a=b;后 b 中的值将放入 a 中,b 中的值不变 D:当输入数值数据时,对于整型变量只

能输入整型值;对于实型变量只能输入实型值

答案:D

第24题 (1.0分) 题号:671

C 语言规定:简单变量做实参时,它和对应 形参之间的数据传递方式是()。 A:地址传递 B:单向值传递

C:由实参传给形参,再由形参传回给实参 D:由用户指定的传递方式

答案:B

第25题 (1.0分) 题号:3073

能正确表示逻辑关系:\≥10或a≤0\的C语言表达式是(). A:a>=10 or a<=0 B:a>=0|a<=10

C:a>=10&&a<=0 D:a>=10 a<=0

答案:D

第26题 (1.0分) 题号:3100 下列运算符中优先级 高的是(). A:< B:+ C:&& D:!=

答案:B 第27题 (1.0分) 题号:130 以下程序段的执行结果是()。 double x;x=218.82631; printf(\

A:输出格式描述符的域宽不够,不能输出 B:输出为21.38e+01 C:输出为2.2e+02 D:输出为-2.14e2

答案:C

第28题 (1.0分) 题号:480 以下程序的输出结果是()。 main() { char s[]=\p=s;

printf(\ }

A:123 B:321 C:213 D:312

答案:B 第29题 (1.0分) 题号:376 在 C 语言中,能代表逻辑值“真”的是()。 A:True

B:大于0的数 C:非0整数 D:非0的数

答案:D

第30题 (1.0分) 题号:2926

在 C 语言中,if 语句后的一对原括号中,用以决定分支的流程的表达式(). A:只能用逻辑表达式

B:只能用关系表达式

C:只能用逻辑表达式或关系表达式 D:可用任意表达式

答案:D

三、程序填空 共2题 (共计24分) 第1题 (12.0分) 题号:3

/*------------------------------------------------------ 【程序填空】

------------------------------------------------------ ---

题目:下面的程序是求1!+3!+5!+……+n! 的和,程序中有4个 空,填空使程序完整。

------------------------------------------------------ -*/ main()

{ long int f,s;

int i,j,n; /***********SPACE***********/ 【?】

scanf(\

/***********SPACE***********/ for(i=1;i<=n; 【?】)

{ f=1;

/***********SPACE***********/ for(j=1; 【?】;j++)

/***********SPACE***********/ 【?】

s=s+f; }

printf(\}

答案:

=======(答案1)======= s=0;

=======(答案2)======= i+=2

=========或=========

i=i+2

=======(答案3)======= j<=i

=========或========= i>=j

=======(答案4)======= f= f * j ;

第2题 (12.0分) 题号:414

/*------------------------------------------------------ 【程序填空】

------------------------------------------------------ --- 功能:通过函数的递归调用计算阶乘。 ------------------------------------------------------ -*/

long power(int n) {long f; if(n>1)

/***********SPACE***********/ f=【?】; else f=1; return(f); } main() {int n; long y;

printf(\/***********SPACE***********/ scanf(\【?】); y=power(n); /***********SPACE***********/

printf(\【?】); getch(); } 答案:

=======(答案1)======= power(n-1)*n

=========或========= power( n - 1 ) * n

=======(答案2)======= &n

=======(答案3)======= y

四、程序改错 共2题 (共计22分)第1题 (11.0分) 题号:417

/*----------------------------------------------------- 【程序改错】

------------------------------------------------------ --

题目:读取7个数(1-50)的整数值,每读取一个值, 程序打印出该值个数的*。

------------------------------------------------------ --

注意:不可以增加或删除程序行,也不可以更改程 序的结构。

-----------------------------------------------------*/ #include \{int i,a,n=1;

/**********FOUND**********/ while(n<7) { do {

scanf(\}

/**********FOUND**********/ while(a<1&&a>50);

/**********FOUND**********/ for(i=0;i<=a;i++) printf(\printf(\n++;} getch(); }

答案:

=======(答案1)======= while(n<=7)

=========或========= while(n<8)

=======(答案2)======= while(a<1||a>50);

=========或========= while(a>50||a<1);

=======(答案3)======= for(i=1;i<=a;i++)

第2题 (11.0分) 题号:19

/*---------------------------------------------------- --

【程序改错】

------------------------------------------------------ --

题目:函数 fun 的功能是:计算正整数 num 的各位上的数字之积。 例如,输入252,则输出应该是20。 请改正程序中的错误,使它能得出正确的结果。 ------------------------------------------------------ --

注意:不可以增加或删除程序行,也不可以更改程序的结构。

-----------------------------------------------------*/

long fun (long num) {

/**********FOUND**********/ long k; do

{

k*=num;

/**********FOUND**********/ num\\=10; }while (num); return k; }

main() {

long n;

printf(\/**********FOUND**********/ scanf(\

/**********FOUND**********/ printf(\}

答案:

=======(答案1)======= long k=1;

=======(答案2)======= num/=10; =========或========= num=num/10; =======(答案3)======= scanf(\

=======(答案4)======= printf(\

五、程序设计 共1题 (共计14分)第1题 (14.0分) 题号:22

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 题目:从键盘为一维整型数组输入10个整数,调用 fun 函数找出其中 小的数,并在 main 函数中输出。 请编写 fun 函数。(用 for 循环) -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主 函数 main 和其 它函数中的任何内容,仅在函数fun 的花括号中填 入所编写的若干语句。

------------------------------------------------*/ #include \{

/**********Program**********/

/********** End **********/ }

main() {

int a[10],i,min; for(i=0;i<10;i++) scanf(\for(i=0;i<10;i++)

printf(\min=fun(a,10); printf(\ yzj(); } yzj() {

FILE *IN,*OUT; int iIN[10],i;

int iOUT,iCOUNT;

IN=fopen(\

{printf(\May Be Changed\}

OUT=fopen(\{printf(\May Be Changed\}

for(i=0;i<10;i++)

{ for(iCOUNT=0;iCOUNT<10;iCOUNT ++)

fscanf(IN,\iOUT=fun(iIN,10);

fprintf(OUT,\}

fclose(IN); fclose(OUT); }

答案:---------------------- int min,i; min=x[0]; for(i=1;i

{if(x[i]

----------------------