y:
n的值为:
。
C
A.1 B.2 C.3 D.4
9.若有说明语句:
charc=‘\64’;则变量C包含:
。
A
A.1个字符B.2个字符
C.3个字符D.说明不合法,C值不确定
10.以下不能正确表示代数式
的C语言表达式是()。
D
A.2*a*b/c/dB.a*b/c/d*2
C.a/c/d*b*2D.2*a*b/c*d
11.任何一个C语言的可执行程序都是从___开始执行的。
B
A.程序中的第一个函数B.main()函数的入口处
C.程序中的第一条语句D.编译预处理语句
12.能正确表示x的取值范围在[0,100]或[-10,-5]内的表达式是。
B
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)
C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)
D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
13.C语言函数的隐含存储类别是____。
D
A.staticB.autoC.registerD.extern
14.将字符串str2连接到字符串str1中应使用。
B
A.strcpy(str1,str2)B.strcat(str1,str2)
C.strcmp(str1,str2)D.strcat(str2,str1)
15.有以下程序
#include
main()
{ int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);
}
程序运行后的输出结果是。
D
A.0,0B.1,0C.3,2D.1,2
16.设变量定义为“inta,b;”,执行语句scanf("a=%d,b=%d",&a,&b);时,输入_____,则a和b的值都是10。
D
A.1010B.10,10C.a=10b=10D.a=10,b=10
17.不是给数组的第一个元素赋值的语句是。
D
A.inta[2]={1};B.inta[2]={1*2};
C.inta[2];scanf(“%d”,a);D.a[1]=1;
18.若用数组名作为函数调用的实参,传递给形参的是。
A
A.数组的首地址 B.数组第一个元素的值
C.数组中全部元素的值 D.数组元素的个数
19.循环语句中的for语句,其一般形式如下:
for(表达式1;表达式2;表达式3)语句
其中表示循环条件的是。
B
A.表达式1B.表达式2C.表达式3D.语句
20.已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。
执行语句printf("%d,%d",c1,c2-2);后,输出结果是__。
C
A.A,BB.A,68C.65,66D.65,68
21.下面叙述中正确的是___B_。
A.全局变量在定义它的文件中的任何地方都是有效的
B.全局变量在程序的全部执行过程中一直占用内存单元
C.同一文件中的变量不能重名
D.使用全局变量有利于程序的模块化和可读性的提高
22.以下叙述中错误的是___。
A
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
23.假定所有变量均已正确说明,下列程序段运行后x的值是。
B
a=b=c=0;x=35;
if(!
a)x=-1;
elseif(b);
if(c)x=3;
elsex=4;
A.34B.4C.35D.3
24.以下程序的执行结果是______C__。
main()
{intnum=0;
while(num<=2){num++;printf("%d,",num);}}
A.0,1,2,
B.1,2,
C.1,2,3,
D.1,2,3,4,
25.以下程序的输出结果是________。
a
voidfun(inta,intb,intc)
{a=456;b=567;c=678;}
main()
{intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",z,y,x);}
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
26.14.下面函数调用语句中实参的个数为:
。
B
func((exp1,exp2),(exp3,exp4,exp5))
A.1B.2C.4D.5
27.有宏定义:
#defineE2.718则编译预处理时将E替换成一个__D__。
A.单精度常量
B.单精度变量
C.双精度变量
D.字符串
28.变量的指针,其含义是指该变量的。
A
A.地址B.值C.名D.一个标志
29.若有定义inta[10],*p=a;,则*(p+5)表示___。
B
A.元素a[5]的地址B.元素a[5]的值
C.元素a[6]的地址D.元素a[6]的值
30.有如下程序段
int*p,a=10,b=1
p=&a;a=*p+b;
执行该程序段后,a的值为。
C
A.12B.10C.11D.编译出错
三、填空题:
(每空2分,共20分)。
1.在C语言中,程序运行期间,其值可以被改变的量叫【1】。
2.表示条件:
x≥0或x<100的C语言表达式是【1】。
3.已知:
inti=3,j=4,m,n;m=++i;n=j++;问语句执行后m=【1】,n=【2】。
4.有定义floaty=1.23456;若希望在屏幕上输出"1.23",则相应的C语言语句应写为printf("【1】",y);。
(2分)
5.下面程序的输出是【1】。
main()
{intarr[10],i,k=O:
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
6.下面程序的输出结果是【1】。
main()
{ints=0,k;
for(k=5;k>=0;k--)
{swich(k)
{case1:
case5:
s++;break;
case3:
case4:
break;
case0:
case2:
s+=2;break;
}
}
printf("s=%d\n",s);
}
7.以下程序可计算10名学生1门课程的平均分,请填空。
floataverage(floatarray[10])
{inti;floataver,sum=array[0];
for(i=1;i<10;i++)
【1】;
aver=sum/10;
returnaver;
}
main()
{floatscore[10],aver;inti;
for(i=0;i<10;i++)
scanf("%f",___【2】____);
aver=___【3】___;
printf("averagescoreis%5.2f\n",aver);}
四、编程题:
(共40分)。
1.从键盘输入1个3位整数n,请判断其是否是“水仙花数”,是则输出n,否则输出“不是”.。
(“水仙花数”是一个其各个位数的立方和等于该整数的三位数,如:
371=33+73+13)(12分)
2.从键盘输入2个整数x和n,用for循环求出xn并输出。
(13分)
3.利用自定义函数voidfun(charc[]),由实参传来一个字符串,实现以下功能:
将字符串中的大写字母转换为小写字母,其他字符不变,要求在主函数中输入字符串str并输出处理后的字符串。
(15分)
答案
一、判断题:
1~5BBBAA6~10BBABB
二、单选题
1~5BCCAD6~10BDCAD
11~15BBDBD16~20DDABC
21~25BABCA26~30BDABC
三、填空题:
1.变量
2.x>=0||x<100或x<100||x>=0
3.[1]4[2]4
4.%4.2f
5.12
6.s=6
7.[1]sum+=array[i]或sum=sum+array[i]或sum=array[i]+sum[2]&score[i]