西工大《C语言程序设计》作业机考参考答案.docx
《西工大《C语言程序设计》作业机考参考答案.docx》由会员分享,可在线阅读,更多相关《西工大《C语言程序设计》作业机考参考答案.docx(12页珍藏版)》请在冰豆网上搜索。
![西工大《C语言程序设计》作业机考参考答案.docx](https://file1.bdocx.com/fileroot1/2022-11/26/6229327d-d7bc-4b86-b7fa-d8f572818c06/6229327d-d7bc-4b86-b7fa-d8f572818c061.gif)
西工大《C语言程序设计》作业机考参考答案
西工大2020年4月《C语言程序设计》作业机考
试卷总分:
100得分:
96
一、单选题(共35道试题,共70分)
1.一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
正确答案:
A
2.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
正确答案:
A
3.以下存储类型只有在使用时才为该类型变量分配内存的是()。
A.auto和static
B.auto和register
C.register和static
D.static和extern
正确答案:
B
4.运行程序:
#include
main()
{
intn='c';
switch(n++)
{default:
printf("error");break;
case'a':
case'A':
case'b':
case'B':
printf("good");break;
case'c':
case'C':
printf("pass");
case'd':
case'D':
printf("warn");
}
}则输出结果是()。
A.good
B.pass
C.warn
D.passwarn
正确答案:
D
5.下面程序的输出结果是()。
main()
{
intx=177;
printf("%o\n",x);
A.177
B.261
C.-61
D.61
正确答案:
B
6.若二维数组a由m列,则在a[i][j]之前的元素个数为()。
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
正确答案:
B
7.以下叙述中错误的是()。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
正确答案:
C
8.下面能正确表示"整数x的绝对值大于等于5"的C语言表达式是()。
A.x≥0
B.abs(x)≥0
C.abs(x)>=0
D.abs(int(x))>=0
正确答案:
C
9.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>b)后n的值为()。
A.1
B.2
C.3
D.4
正确答案:
B
10.{有以下程序#includemain0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。
A.741
B.963
C.852
D.875421
正确答案:
C
11.以下选项中,与k=n++完全等价的表达式是()。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
正确答案:
A
12.C语言程度的基本单位是()。
A.函数
B.标识符
C.表达式
D.语句
正确答案:
A
13.在C语言中,二维数组元素在内存中的存放顺序是()。
A.按行存放
B.按列存放
C.由用户自己定义
D.由编译器决定
正确答案:
A
14.若定义inta=7;floatx=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。
A.2.500000
B.2.750000
C.3.50000
D.0.000000
正确答案:
A
15.逻辑运算符两侧运算对象的数据类型()。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
正确答案:
D
16.以下选项中不属于字符常量的是()。
A.′C′
B.′′C′′
C.′\xCC′
D.′\072′
正确答案:
B
17.下列不正确的字符串常量是()。
A.'ABC'
B."W'"
C."SDF/3"
D.""
正确答案:
B
18.若希望当A的值为奇数时,表达式的值为"真"。
A的值为偶数时,表达式的值为"假",则以下能满足要求的表达式是()。
A.A%2==1
B.!
(A%2==0)
C.!
(A%2)
D.A%2
正确答案:
A
19.以下不正确的定义语句是()。
A.doublex[5]={2.0,4.0,6.0,8.0,10.0;
B.inty[5]={0,1,3,5,7,9;
C.charc1[]={′1′,′2′,′3′,′4′,′5′;
D.charc2[]={′\x10′,′xa′,′\x8′;
正确答案:
B
20.有以下程序
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
A.a=1,b=0
B.a=2,b=2
C.a=1,b=1
D.a=2,b=1
正确答案:
D
21.以下描述错误的是()。
A.break语句不能用于循环语句和switch语句外的任何其他语句
B.在switch语句中使用break语句或continue语句的作用相同
C.在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
正确答案:
B
22.有定义语句:
chars[10];,若要从终端给s输入5个字符,错误的输入语句是()。
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
正确答案:
D
23.判断char型变量CH是否为大写字母的正确表达式是()。
A.'A'<=CH<='Z'
B.(CH>='A')&(CH<='Z')
C.(CH>='A')&&(CH<='Z')
D.('A'<=CH)AND('Z'>=CH)
正确答案:
C
24.下面程序的输出结果是()。
main()
{intx=5,y=9,z=1,t;
t=(x>y||x>z);
printf("%d\n",t);
A.1
B.0
C.5
D.3
正确答案:
A
25.已知x=43,ch='A',y=0;则表达式x=y&&ch<'B'&&!
y的值是()。
A.0
B.语法错
C.1
D."假"
正确答案:
D
26.下列程序执行后的输出结果是()。
#defineMA(x)x*(x+1)
main()
{
inta=2,b=3;
printf("%d\n",MA(1+a+b));
A.6
B.8
C.24
D.42
正确答案:
C
27.若i为整型变量,则以下循环执行次数是()。
A.无限次
B.0次
C.1次
D.2次
正确答案:
B
28.若有说明:
int*p,m=5,n;,以下正确的程序段是()。
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
正确答案:
D
29.()是构成C语言程序的基本单位。
A.函数
B.过程
C.子程序
D.子例程
正确答案:
A
30.有以下程序
main()
{inti,s=1;
for(i=1;i<50;i++)
if(!
(i%5)&&!
(i%3))s+=i;
printf("%d\n",s);
A.409
B.277
C.1
D.91
正确答案:
D
31.定义inti=1;则执行语句while(i++<5);后,i的值为()。
A.3
B.4
C.5
D.6
正确答案:
D
32.下面判断正确的是()。
A.char*a="china";等价于char*a;*a="china";
B.charstr[5]={"china";等价于charstr[]={"china";
C.char*s="china";等价于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
正确答案:
C
33.feof函数用来判断文件是否结束,如果文件没有结束,则返回值是()。
A.-1
B.0
C.1
D.EOF
正确答案:
D
34.对for(表达式1;;表达式3)可理解为()。
A.for(表达式1;0;表达式3)
B.for(表达式1:
1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式2;表达式3)
正确答案:
B
35.设有说明语句:
chara='\72';则变量a()。
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法
正确答案:
A
二、判断题(共15道试题,共30分)
1.在C程序中,%是只能用于整数运算的运算符。
A.错误
B.正确
正确答案:
正确
2.若一个外部变量的定义形式为staticintx;其中static的作用是使x只能在本文件内引用。
A.错误
B.正确
正确答案:
正确
3.C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。
A.错误
B.正确
正确答案:
正确
4.'\\0','\101','X1f'均是合法的转义字符。
A.错误
B.正确
正确答案:
错误
5.一个C源程序文件由一个或多个函数组成,由此可见函数是一个独立的编译单位。
A.错误
B.正确
正确答案:
错误
6.用typedef可以定义各种类型名,但不能用来定义变量。
A.错误
B.正确
正确答案:
正确
7.若变量a和x均为double类型,则代数式x^2-e^5转化为正确的C语言表达式为:
x*x-exp(5)。
A.错误
B.正确
正确答案:
正确
8.在循环体内使用break语句或continue语句的作用相同。
A.错误
B.正确
正确答案:
错误
9.0a12,-0x123,-0xa均是正确的八进制或十六进制数。
A.错误
B.正确
正确答案:
错误
10.for循环是先执行循环体语句,后判断表达式。
A.错误
B.正确
正确答案:
错误
11.一个可执行的C语言程序总是从main()函数的入口地址处开始执行。
A.错误
B.正确
正确答案:
正确
12.两个字符串所包含的字符个数相同时才能比较字符串大小。
A.错误
B.正确
正确答案:
错误
13.&b指的是变量b的地址处所存放的值。
A.错误
B.正确
正确答案:
错误
14.空语句是合法的C语句。
A.错误
B.正确
正确答案:
正确
15.局部静态变量是在编译时赋初值的,即只赋初值一次。
A.错误
B.正确
正确答案:
正确