C语言复习题一

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择

1. 为了判断两个字符串s1和s2是否相等,应当使用( D )

A. if (s1==s2)

B. if(s1=s2)

C. if (strcmp(s1,s2))

D. if (strcmp(s1,s2)==0)

2. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( B )。

main()

{

int *p,*q,a,b;

p=&a;

printf("input a:");

scanf("%d",*p);

}

3 若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为( C )。

A. 4

B. 16

C. 32

D. 52

4. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( C ),(注: _ 表示空格)

int al,a2,char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A. 10A_20_B

B. 10_A_20_B

C. 10A20B

D. 10A20_B

5. 以下关于do-while循环的不正确描述是( )。

A. do-while的循环体至少执行一次

B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C. 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作

D. do-while的循环体可以是复合语句

6下列说法中错误的是()

A程序的执行总是从主函数开始的

B主函数可以调用任何非主函数的其他函数

C任何非主函数可以调用其他任何非主函数

D程序可以从任何非主函数开始执行

7若有定义:char a[30]=”china\0\t’\\”;则strlen(a)和sizeof(a)的值是(B)

A、30 30

B、5 30

8函数调用“strcat(strcpy(str1,str2),str3)”的功能是()

A将字符串str1复制到字符串str2后再连接到字符串str3之后

B将字符串str1连接到字符串str2后再复制到字符串str3之后

C将字符串str2复制到字符串str1后再将字符串str3连接到字符串str1之后

D将字符串str2复制到字符串str1后再将字符串str1连接到字符串str3之后9以下对C语言函数的有关描述,正确的使(A)

A在C中调用函数时,只有把实参的值传给形参,形参的值不能传给实参B函数既可以嵌套定义又可以递归调用

C函数必须有返回值,否则不能使用函数

D程序中有调用关系的所有函数必须放在同一个源程序文件中

10 int i=9,执行下列程序后i的值是:()

swith(i)

{ case 9: i+=1;

case 10:

case 11: i-=1;

defaut: i+=1;

}

11、已知:int x=1,y=2,则执行z=x>y?++x:++y,z的值为()

12 已知:a=b=c=1且均为int型变量,则执行以下语句:

++a||++b&&++c;

变量a值为①( ),b值为②( )。

A. 不正确

B. 0

C. 2

D. 1

A. 1

B. 2

C. 不正确

D. 0

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

A. 地址传递

B. 单向值传递

C. 双向值传递。即由实参传给形参,再由形参传回给实参

D. 由用户指定传递方式

14. 若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( C )。

A. a,p,&*a

B. *&a,&a,*p

C. &a,p,&*p

D. *&p,*p,&a

15. 下述对C语言字符数组的描述中错误的是( B )。

A. 字符数组可以存放字符串。

B. 字符数组的字符可以整体输入、输出。

C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。

D. 可以用关系运算符对字符数组中的字符进行比较。

16. 以下关于do-while循环的不正确描述是( B )。

A. do-while的循环体至少执行一次

B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C. 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作

D. do-while的循环体可以是复合语句

17.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。

A p=“abcd”;

B a=“abcd”;

C *p=“abcd”;

D *a=“abcd”; 18.若k为整形,则while循环执行()次。

k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”);

A 10

B 9

C 0

D 1

19.数组名作为实参传递给形参时,数组名被处理为()。

A 该数组的长度

B 该数组的元素个数

C 该数组的首地址

D 该数组中各元素的值20.以下程序的输出结果是()。

main()

{ int k1=1,k2=2,k3=3,x=15;

if(!k1) x--;

else if(k2) if(k3) x=4;else x=3;

printf(“x=%d\n”,x);

}

相关文档
最新文档