1.下面叙述正确的是()
A)define和auto都不能定义为用户标识符
B)可以把define和auto定义为用户标识符
C)可以把define定义为用户标识符,但auto是C语言的关键字
D)可以把auto定义为用户标识符,但define是C语言的关键字
2.以下的for循环()
for(x=0,y=0;(y!=123)&&(x<4);x++)
A)是无限循环
B)循环次数不定
C)执行4次
D)执行3次
3.下述对C语言字符数组的描述中错误的是()
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
4.设有定义:int a,*p=&a,**pp=&p;,则与a=100;等价的语句为()
A)**p=100;
B)**pp=100;
C)&*p=100;
D)*pp=10;
5.有以下程序
int x=3;
do {printf("%d",x-=2);}while(!(--x));
程序运行后的输出结果是()
A)1
B)30
C)1-2
D)死循环
6.执行下面程序的正确结果是()
main()
{ float a=1.9;
switch(a)
{ case 0∶printf("0000");
case 1∶printf("1111");
case 2∶printf("3333");
}
printf("%f",a);
}
A)1.900000
B)111133331.900000
C)33331.900000
D)00001111233331.900000
7.对下述程序,正确的判断是()
main ()
{ int a, b;
scanf("%d,%d",&a,&b);
if(a>b)a=b;b=a;
else a++;b++;
printf("%d,%d",a,b);}
A)有语法错误不能通过编译
B)若输入4,5则输出5,6
C)若输入5,4则输出4,5
D)若输入5,4则输出5,5
8.若有如下程序:
sub(int n)
{intt;
if(n==1)returnt=5;
else t=sub(n-1)+3;
returnt;}
main()
{printf("%d\n",sub(5));}
则程序运行后的输出结果是()
A)17
B)18
C)19
D)20
9.下面各被调用函数首部书写正确的是()
A)void sub(float x;float y);
B)void sub(float x,y)
C)void sub(float x,float y)
D)void sub(float x,float y);
10.设有如下程序:
#include"string.h"
main()
{static char s1[20],s2[20];
scanf("%s",s1);scanf("%s",s2);
if(strcmp(s1,s2))printf("@");
elseprintf("$");
printf("%d\n",strlen(strcat(s1,s2)));}
如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()
A)$8
B)@10
C)$9
D)@9
答案:1.C 2.C 3.C 4.B 5.C 6.B 7.A 8.A 9.C 10.D