C语言模拟试卷(带答案)
- 格式:doc
- 大小:83.00 KB
- 文档页数:5
精品文档
. 单选题:
1、 执行下面的程序段后,变量k中的值为
s[0]=k; k=s[1]*10;
A. 不定值
B. 33
C. 30
D. 10
答案: A
2、 设有以下定义:
#define N 3
#define Y(n) ( (N+1)*n)
则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+(4*5+1)
A. 出错
B. 42
C. 48
D. 54
答案: C
3、 若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____
A. 1
B. 2
C. 2.0
D. 2.5
答案: c
4、 请选出以下语句的输出结果____
printf("%d\n",strlen("\t\ 065\xff\n"))
A. 5
B. 4
C. 8
D. 输出项不合法,无正常输出
答案: B
5、 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。
A. 其上面距它最近的,并且没有其他else与其配对的if相配对
B. 在同一行上的if
C. 缩排位置相同的if
D. 在其之前未配对的if
答案: A
6、 若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段:
printf("%d",(X,Y));
上面程序片段的输出结果是
A. 200 B. 100
C. 100 200
D. 输出格式符不够,输出不确定的值
答案: A
7、 请读程序片段(字符串内没有空格字符):
printf("%d\n", strlen("ATS\n012\1\\"));
上面程序片段的输出结果是
A. 11
B. 9
C. 10
D. 8
答案: B
8、 设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x;
printf("%d",s);
则______
A. 运行程序段后输出0
B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的
D. 程序段执行无限次
答案: B
9、 阅读下列程序:
main( )
{ int n[3],i,j,k;
for(i=0;i〈 3;i++)
n[i]=0;
k=2;
for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2
i=1: =3 =3
for (j=0;j〈 2;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
下述程序运行后输出结果是
A. 2
B. 1
C. 0
D. 3
答案: D
10、 输入一个华氏温度,要求输出摄氏温度。计算公式为:
c=5/9(F-32),以下程序正确的是()
A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32);
printf("摄氏温度是:%f\n",c); } 精品文档
. B. main() { float c,F; scanf("%f,%f",&c,&F); c=5*(F-32)/9;
printf("摄氏温度是:%f\n",c); }
C. main() { float c,F; scanf("%f,%f",&c,&F); c=5%9*(F-32);
printf("摄氏温度是:%f\n",c); }
D. main() { float c,F; scanf("%f,%f",&c,&F);
c=5.0/9.0(F-32); printf("摄氏温度是:%f\n",c); }
答案: B
11、 以下程序的输出结果是
main( )
{ int k=17;
printf("%d,%o,%x \n",k,k,k);
}
A. 17,021,0x11
B. 17,17,17
C. 17,0x11,021
D. 17,21,11
答案: D
12、 请读程序:
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序输出结果是
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=0
答案: A
13、 C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.
A. 单纯值传递
B. 单纯地址传递
C. 值传递和地址传递都有可能
D. 由实参传给形参,然后由形参传回给实参,即是双向传递 答案: A
14、 下列不正确的转义字符是( )
A. '\\'
B. '\'
C. '\101'
D. '\0'
答案: B
15、 下列语句正确的是( )
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
16、 以下说法中正确的是( )。
A. C语言程序中是从第一定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
答案: C
17、 下列说法中正确的是____。
A. 一个数组能够存储许多不同类型的值
B. 数组的下标可以是float数据类型
C. 如果初始化值列表中的个数少于数组的元素的个数,C编译器会自动补齐
D. 初始化值列表中的值的个数多于数组元素的个数是错误的
答案: D
18、 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为
A. float
B. char
C. int
D. double
答案: D
19、 设以下变量均为int类型,则值不等于7的表达式是
A. (x=y=6,x+y,x+1)
B. (x=y=6,x+y,y+1)
C. (x=6,x+1,y=6,x+y)
D. (y=6,y+1,x=y,x+1)
答案: C
20、 以下不正确的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
21、 若i为整型变量,则以下循环执行次数是
for(i=2;i==0;) printf("%d",i--);
A. 无限次
B. 0次
C. 1次
D. 2次
答案: B
22、 以下错误的描述是:函数调用可以
A. 出现在执行语句中
B. 出现在一个表达式中
C. 做为一个函数的实参
D. 做为一个函数的形参
答案: D
23、 以下各选项企图说明一种新的类型名,其中正确的是
A. typedef v1 int;
B. typedef v2=int;
C. typedef v1 int v3;
D. typedef v4: int;
答案: C
24、 以下程序的输出结果是
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A. 5
B. 4
C. 6
D. 不确定
答案: c
25、 以下程序调用findmax函数返回数组中的最大值
findmax(int a[],int n)
{ int *p,*s;
for(p=a,s=a; p-a
s p
if ( ) s=p;
return(*s);
}
main() { int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下划线处应填入的是
A. p>s
B. *p>*s
C. a[p]>a[s]
D. p-a>p-s
答案: B
26、 有如下程序
main()
{ char s[]="ABCD", *P;
for(p=s+l; p < s+4; p++) printf ("%s\n",p);
}
该程序的输出结果是
A. ABCD BCD CD D
B. A B C D
C. B C D
D. BCD CD D
答案: D
27、 下列描述中不正确的是
A. 字符型数组中可以存放字符串
B. 可以对字符型数组进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
答案: C
28、 将三个数排序需要比较______次。
A. 2
B. 3
C. 4
D. 不确定
答案: B
填空题:
1、 下面程序功能是:输出100以内能被3整除且个位数为6的所有整数,请填
空。
#include < stdio.h >
main() { int i, j;