1、有如下程序:
int main(void)
{
int x = 102, y = 012;
printf("%2d,%2d\n",x,y);
return 0;
}
执行后输出结果是 ( )。
A.102,10 B.002,12 C.102,12 D.10,01
2、宏定义“#define p(x,y,z) x=y*z;”的宏替换“p(a,x+5,y-3.1)”应为 ( ) 。
A.a=x+5*y-3.1; B.a=(x+5)*(y-3.1)
C.a=x+5*y-3.1 D.a=(x+5)*(y-3.1);
3、若有以下定义,则正确表示a数组元素地址的 ( ) 。
int a[5],*p=a;
A.*a+1 B.p+5 C.&a[0] D.&a+1
4、以下叙述中正确的是 ( ) 。
A.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
B.main可作为用户标识符,用以命名任意一个函数作为主函数
C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D.C语言程序将从源程序中第一个函数开始执行
5、以下叙述不正确的是 ( )。
A.一个C源程序必须包含一个main函数
B.C程序的基本组成单位是函数
C.在C程序中注释说明只能位于一条语句的后面
D.一个C源程序可由一个或多个函数组成
6、设i、j、k为int型变量,若从键盘输入:1,2,3<回车>,要使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是 ( ) 。
A.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
B.scanf(""%d %d %d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("%2d%2d%2d",&i,&j,&k);
7、若有声明“int x[10]={0,1,2,3,4,5,6,7,8,9},*p;”,则值不为4的表达式是 ( ) 。
A.p=x+3,*++p B.p=x+4,*p++ C.p=x,*(p+4) D.p=x+3,*(p++)
8、下面关于结构的定义正确的是 ( ) 。
A.struct num{ a,b,c};
B.struct teacher{char xm[10],int age};
C.struct num{ int a; char b; };
D.struct num{ int a,char b};
9、下面定义和初始化数组正确的是 ( ) 。
A.char a="string";
B.int a[5]={0,1,2,3,4,5};
C.int a[]="string";
D.int a[]={0,1,2,3,4,5};
10、以下程序的输出结果是 ( ) 。
int main(void)
{
int i, a[10];
for(i=0;i<10;i++)
a[i]=10-i;
printf("%d%d%d",a[3],a[6],a[9]);
return 0;
}
A.852 B.741 C.258 D.369
11、在C语言中,int的存储形式是 ( ) 。
A.原码 B.ASCII码 C.补码 D.反码
12、变量a是int型,f是float型,i是double型,则表达式10+'a'+i*f值的数据类型为 ( ) 。
A.float B.int C.不确定 D.double
13、若有定义:int a,b;通过语句scanf("%d*%d", &a,&b);能把整数3赋给变量a,5赋给变量b的输入数据是 ( ) 。
A.3*5 B.3,5 C.35 D.3 5
14、已知某程序中有声明“int a[4] ,j;”及语句“for(j=0;j<4;j++) p[j]=a+j;”,则标识符p正确的声明形式应为 ( ) 。
A.int *p[4]; B.int (*p)[4]; C.int **p[4]; D.int p[4];
15、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 输出结果是 ( ) 。
A.1 B.0 C.3 D.4
16、表达式: 10!=9 的值是 ( ) 。
A.1 B.随机值 C.不确定 D.0
17、阅读以下程序,程序运行后的输出结果是 ( ) 。
int main(void)
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i, s = 0;
for(i=0;i<4;i++)
s+=a[i][1];
printf("%d\n",s);
return 0;
}
A.11 B.13 C.20 D.19
18、若有以下定义:char str[15][15];则对数组元素的正确引用是 ( ) 。
A.str[4][12] B.str[6,1] C.str[12][15] D.str[15][4]
19、若有数组A和B的声明 char A[ ]="ABCDEF" , B[ ]={'A','B','C', 'D','E','F'}; 则数组A和数组B的长度分别是 ( ) 。
A.6,7 B.7,6 C.7,7 D.6,6
20、设有如下声明,则表达式: w*x+z-y值的数据类型是 ( ) 。
char w;
int x;
float y;
double z;
A.float B.char C.double D.int
答案:AACCC CDCDB CDAAC ADABC