单选题:
1、 下列程序执行后输出的结果是
#include 〈stdio.h〉
f(int a)
{ int b=0;
int c=3;
a=c++, b++; //先计算a,再取b值,但没使用。如果a=(c++, b++),结果?;
return(a);
}
main( )
{ int a=2,i,k;
for(i=0;i〈2;i+ +)
k=f(a+ +); //i=0,a=2;i=1,a=3(但没有改变被调函数的使用)
printf("%d\n",k);
}
A. 3
B. 0
C. 1
D. 4
答案: A
2、 假定a和b为int型变量,则执行以下语句后b的值为
main()
{ a=1; b=10;
do
{b=b-a; a++;} /* ①10-1=9,a=2;②8-2=6,a=3;③5-3=2、a=4 ④1-4=-3 */
while (b-- > 0); /* ①9-1=8;②6-1=5;③2-1=1;④ -3-1=-4 */
}
A. -3
B. -2
C. -1
D. -4
答案: D
3、 下面的表达式中_______满足:当x为偶数时值为“真”,为奇数时值为“假”
A. x%2==0 /* 如4%2==0 (1) 5%2==0 (0)
B. !x%2!=0 /* 如!4%2!=0 (0) !5%2!=0 (0)(优先级:!-> %-> !=)
C. 2*x/2-x==0
D. !(x%2)
答案: B ?
4、 设 int b=2;表达式b/(b*2)的值是_______.
A. 0
B. 0.5
C. 0.500000
D. 0.00000
答案: A
5、 设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为_____.
A. 4
B. 16
C. 32
D. 52
答案: C
6、 若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(″%d,%d,%d\n″,u,v,w);
则输出结果是:
A. 8,16,10
B. 10,10,10
C. 8,8,10
D. 8,10,10
答案: A
7、 若有以下说明和语名:
int a=5
a++;
此处表达式a++的值是____
A. 7
B. 6
C. 5
D. 4
答案: C
8、 若执行下面的程序从键盘输入3和4,则输出是_______
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if (a < b) s=b;
s=s*s;
printf("%d\n",s);
}
A. 14
B. 16
C. 18
D. 20
答案: B
9、 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系
的表达式为________。
A. a < > 0
B. !a
C. a=0
D. a!=0
答案: D
10、 执行语句:for(i=1;i++ < 4;)后;变量i的值是( )
A. 3
B. 4
C. 5
D. 不定
答案: C
11、 执行语句:for (i=1;i++ < 4;)后;变量i的值是
A. 3
B. 4
C. 5
D. 不定
答案: C
12、 已知字母A的ASCⅡ码为十进制的65,下面程序的输出是
main()
{ char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%c,%c\n",c1,c2);
}
A. 67,D
B. B,C
C. C,D
D. ch2='A'+'6'-'3';
答案: C
13、 下列程序执行后的输出结果是
main()
{ char arr[2][4];
strcpy(arr[0],"you");
strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
}
A. you&me
B. you
C. me
D. err
答案: A
14、 下列程序执行后的输出结果是
#define MA(x) x*(x-1)
main()
{ int a=1,b=2;
printf("%d \n",MA(1+a+b));} /* 1+1+2*(1+1+2-1)=8
A. 6
B. 8
C. 10
D. 12
答案: B
15、 以下程序运行后,输出结果是
main( )
{ char s[]="abcde";
s+=2;// error C2106: '+=' : left operand must be l-value
printf("%ld\n",s);
}
A. cde
B. 字符c的ASCII码值
C. 字符c的地址
D. 出错
答案: D
16、 i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是
for (i=5; i; i--) /* i=5、4、3、2、1 */
for(j=0; j < 4; j++){…}
A. 20
B. 24
C. 25
D. 30
答案: A
17、 执行下面语句后的输出为( )
int i= -1;
if (i < =0)printf("****\n")
else printf("%%%%\n")
A. ****
B. %%%%
C. %%%%C
D. 有语法错,不能执行
答案: D (else前缺少;)
18、 语句:printf("%d \n",12&&12);的输出结果是
A. 12
B. 1
C. 24
D. 0
答案: B
19、 以下说法中正确的是( )
A. C语言程序总是从第一个的函数开始执行
basic语言属于高级语言B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
答案: C
20、 下述对C语言字符数组的描叙不正确的是( )
A. 字符数组可以存放字符串
B. 字符数组中的字符串可以整体输入、输出
C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D. 不可以用关系运算符对字符数组中的字符串进行比较
答案: C
21、 C程序是( )
A. 按顺序执行的
B. 从Main函数开始
C. 从函数体开始
D. 任意语句
答案: B
22、 下列语句正确的是( )
A. if(a > b > c) temp=a
B. if((a=b) > 0) temp=a
C. int a=b=c=4
D. int a;scanf(%d,a)
答案: B
23、 以下关于字符串的不正确说法是( )
A. 字符串长度就是字符串中字符的个数
B. 字符串的尾部会自动追加一个"字符串结束标志"
C. 字符串的长度为字符个数加1
D. 在C语言中常用字符型数组来存放字符串
答案: A
24、 以下正确的说法是:在C语言中
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元
D. 形参是虚拟的,不占用存储单元
答案: A
25、 以下不正确的if语句形式是
A. if(x>y&&x! =y)t=x++;
B. if(x==y) x+=y;
C. if(x!=y) scanf("%d",&x) else scanf("%d",&y);
D. if(x<>
答案: C ??
26、 请阅读以下程序:
main( )
{
int a=5,b=0,c=0;
if(a==b+c) printf("***\n");
else printf("$$$\n");
}
以上程序
A. 有语法错不能通过编译
B. 可以通过编译但不能通过连接
C. 输出***
D. 输出$$$
答案: D
27、 以下不正确的说法是:C语言规定
A. 实参不可以是常量,变量或表达式
B. 形参可以是常量,变量或表达式
C. 实参可以为任何类型
D. 形参应与其对应的实参类型一致
答案: B
28、 若有语句:char s1[]="string",s2[8],*s3,*s4="string2";则对库函数strcpy的错误调用是
A. strcpy(s1,"string2");
B. strcpy(s4,"string1");
C. strcpy(s3,"string1"); //指针s3没有指向
D. strcpy(s1,s2);
答案: C
29、 假定x和y为double型,则表达式x=2,y=x+3/2的值是
A. 3.500000
B. 3
C. 2.000000
D. 3.000000 (3/2=1作为整型数据运算,应为:3.0/2.0)
答案: D
30、 以下程序的输出结果是
main()
{ char c='z';
printf("%c",c-25);
}
A. a
B. Z
C. z-25
D. y
答案: A
31、 有如下程序
main()
{ int x=23;
do
{ printf("%d",x--);}
while(!x);
}
该程序的执行结果是
A. 321
B. 23
C. 不输出任何内容
D. 陷入死循环
答案: B
32、 设有说明语句:char a='\72';则变量a
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论