21、若有int w=1,x=2,y=3,z=4;则表达式w>x?w:y<z?y:z的值是 ( ) 。
A.3 B.1 C.2 D.4
22、若 "int n; float f=13.8;" ,则执行 "n=(int)f%3" 后,n值是 ( ) 。
A.4 B.1 C.4.6 D.2
23、下面描述正确的是 ( ) 。
A.字符串"that"小于字符串"the"。
B.两个字符串所包含的字符个数相同时,才能比较字符串。
C.字符串"student " 与" student"相等。
D.字符个数多的字符串比字符个数少的字符串大。
24、设int在内存中占两个字节,以下程序的运行结果是 ( )。
#pragma pack(4)
#include "stdio.h"
struct date
{
int year;
int month;
int day;
}today;
int main(void)
{
printf("%d\n",sizeof(struct date));
return 0;
}
A.8 B.12 C.6 D.10
25、设有以下说明语句,则下面的叙述中不正确的是 ( ) 。
struct em
{
int x ;
float y;
char z ;
} employee;
A.struct em是结构体类型
B.struct是结构体类型的关键字
C.employee是结构体类型名
D.x,y,z都是结构体成员名
26、若有枚举类型定义如下,则枚举常量x2和x6代表的值分别是 ( ) 。
enum list1
{
x1,
x2,
x3,
x4=6,
x5,
x6
};
A.1,6 B.2,6 C.1,8 D.2,8
27、假定等级和分数有以下对应关系,对于等级grade输出相应的分数区间,能够完成该功能的程序段是 ( ) 。
等级:A 分数:85~100
等级:B 分数:60~84
等级:C 分数:60 以下
A.
switch (grade)
{
case 'A':
printf("85--100\n");
break;
case 'B':
printf("60--84\n");
case 'C':
printf("60以下\n");
default:
printf(" 等级错误!\n");
}
B.
switch (grade)
{
case 'A':
printf("85--100\n");
break;
case 'B':
printf("60--84\n");
break;
case 'C':
printf("60以下\n");
default:
printf("等级错误!\n");
}
C.
switch (grade)
{
case 'A':
printf("85--100\n");
case 'B':
printf("60--84\n");
case 'C':
printf("60以下\n");
default:
printf("等级错误!\n");
}
D.
switch (grade)
{
case 'A':
printf("85--100\n");
break;
case 'B':
printf("60--84\n");
break;
case 'C':
printf("60以下 \n");
break;
default:
printf("等级错误!\n");
}
28、下列整型常量中,不合法的整型常量是 ( ) 。 1分
A.256 B.0x7a8f C.0592 D.0X123
29、对 for(表达式1; ;表达式3) 可理解为 ( ) 。
A.for(表达式1; 1; 表达式3)
B.for(表达式1; 0; 表达式3)
C.for(表达式1; 表达式3; 表达式3)
D.for(表达式1; 表达式1; 表达式3)
30、字面值的书写格式决定了字面值的类型和值,0x1011是 ( ) 。
A.2进制整型 B.8进制整型 C.字符 D.16进制整型
31、设有以下说明语句,则下面的叙述不正确的是 ( ) 。
struct stu
{
int a;
float b;
} stutype;
A.stutype是用户定义的结构体类型名
B.struct是结构体类型的关键字
C.a和b都是结构体成员名
D.struct stu是用户定义的结构体类型
32、以下程序中, for循环体执行的次数是 ( ) 。
#define N 2
#define M N+1
#define K M+1*M/2
int main(void)
{
int i;
for(i=1; i<K; i++)
{
...
}
return 0;
}
A.4 B.5 C.6 D.3
33、当a=24,b=28,c=21,d=63时,执行完下面一段称序后x的值是 ( )
if (a<b)
if (c>d)
x=3;
else
if (a>c)
if (b<d)
x=5;
else
x=7;
else
x=2;
else
x=23;
A.2 B.23 C.7 D.5
34、有如下程序,该程序的输出结果是 ( ) 。
int fun(int n){
if(n == 0||n == 1)
return 1;
else
return fun(n - 2) * n;
}
int main(void){
printf("%d\n",fun(6));
return 0;
}
A.48 B.1 C.24吗 D.384
35、下列语句中,功能与其他语句不同的是 ( ) 。
A.if(a) printf("%d",x); else printf("%d",y);
B.if(a==0) printf("%d",y); else printf("%d",x);
C.if(a!=0) printf("%d",x); else printf("%d",y);
D.if(a==0) printf("%d",x); else printf("%d",y);
36、以下正确的描述是 ( ) 。
A.continue 语句的作用是结束本次循环的执行。
B.continue 语句的作用是终止整个循环的执行。
C.continue 语句和break 语句都可以在switch语句中使用。
D.break 语句的作用是结束本次循环的执行。
37、若有结构类型定义“typedef struct test{ int x; int y[2]; }TEST;”,则以下声明中正确的是 ( )
A.struct test x; B.struct TEST x; C.test x; D.struct x;
38、在while(x)语句中的x与下面条件表达式等价的是 ( ) 。
A. x!=1 B.x==0 C.x==1 D.x!=0
39、有以下程序段,输出的结果是 ( ) 。
int main(void) {
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b = p[5];
printf("%d", b);
return 0;
}
A.5 B.9 C.6 D.8
40、C语言中运算对象必须是整型的运算符是 ( ) 。
A.<= B./ C.= D.%=