西工大2021年10月机考《C语言程序设计》作业
试卷总分:100    得分:100
答案 网叫福到(这四个字的拼音)
一、 单选题 (共 35 道试题,共 70 分)
1. 以下存储类型只有在使用时才为该类型变量分配内存的是( )。
A.auto和static
B.auto和register
C.register和static
D.static和extern
2. 在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其他3条语句不等价,它是( )。
A.if(a) s1; else s2;
B.if(a==0) s2; else s1;
C.if(a!=0) s1; else s2;
D.if(a==0) s1; else s2;
3.假定w、x、y、z、m均为整型变量,且w=1, x=2, y=3, z=4则执行语句:m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;后,m的值是( )。
A.4
B.3
C.2
D.1
4. 设有定义:char p[]={′1′,′2′,′3′,*q=p;,以下不能计算出一个char型数据所占字节数的表达式是
( )。
A.sizeof(p)
B.sizeof(char)
C.sizeof(*q)
D.sizeof(p[0])
5. 若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是( )。
A.a[2][!1]
B.a[2][3]
C.a[0][3]
D.a[1>2][!1]
6. 以下程序的输出结果是( )。
main()
{
int c=35; printf("%d\n",c&c);
}
]
A. 0
B.70
C.35
D.1
9. 设有如下程序段
char s[20]="Beijing",*p;
p=s;
则执行p=s;语句后,以下叙述正确的是( )。
A.可以用*p表示s[0]
B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量
D.数组s中的内容和指针变量p中的内容相同
7. 说明语句int *(*p)(); 的含义是( )。
A.p是一个指向int型数组的指针
B.p是指针变量,它构成了指针数组
C.p是一个指向函数的指针,该函数的返回值是一个整型
D.p是一个指向函数的指针,该函数的返回值是一个指向整型的指针
8. 若int i, x; 则for(i=x=0; i<9&&x!=5; i++, x++)控制的循环体将执行( )次。
A.10
B.9
C.5
D.6
9. 以下叙述中错误的是( )。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
10. 已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2 的值是′D′。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
A.A,B
B.A,68
C.65,66
D.65,68
11. 以下叙述中错误的是( )。
A.gets函数用于从终端读入字符串
B.getchar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
12. 在C语言中,逻辑值"真"是用( )表示的。
A.预定义为真值的宏
B.非零数
C.正数
D.非零整数
13. 在while(x)语句中的x与下面条件表达式等价的是( )。
A.x==0
B.x==1
C.x!=1
D.x!=0
14. 若变量已正确定义,有以下程序段
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i);
其输出结果是( )。
A.0,0
B.0,1
C.1,1
D.程序进入无限循环
15. 以下选项中,不能作为合法常量的是( )。
A.1.234e04
B.1.234e0.4
C.1.234e+4
D.1.234e0
16. 判断char型变量CH是否为大写字母的正确表达式是( )。
A.'A'<=CH<='Z'
B.(CH>='A')& (CH<='Z')
C.(CH>='A')&& (CH<='Z')
D.('A'<= CH)AND('Z'>= CH)
17. 以下定义语句中正确的是( )。
A.int  a=b=0;
B.char  A=65+1,b=′b′;
C.float  a=1,*b=&a,*c=&b;
D.double  a=0.0;b=1.1;
18. 执行以下语句后b的值为( )。
int a,b,c; a=b=c=1; ++a||++b&&++c;
A.1
B.2
C.错误
D.0
19. 以下选项中,与k=n++完全等价的表达式是( )。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
20. 以下描述错误的是( )。
A.break语句不能用于循环语句和switch语句外的任何其他语句
B.在switch语句中使用break语句或continue语句的作用相同
C.在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
21. 下面程序的输出结果是( )。
main()
{ int x=5,y=9,z=1,t;
t=(x>y||x>z);
fopen函数失败printf("%d\n",t);
A.1
B.0
C.5
D.3
22. 已知int **p; 则变量p是( )。
A.指向int的指针
B.指向指针的指针
C.int型变量
D.以上3种说法均是错误的
23. C语言规定,在一个源程序中,main函数的位置( )。
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
正确答案:C
24. 当变量c的值不为2、4、6时,值也为"真"的表达式是( )。
A.(c==2)︱︱(c==4)︱︱(c==6)
B.(c>=2&& c<=6)︱︱(c!=3)︱︱(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&& c<=6)&&(c%2!=1)
25. 若希望当A的值为奇数时,表达式的值为"真"。A的值为偶数时,表达式的值为"假",则以下能满足要求的表达式是( )。
A.A%2==1
B.!(A%2= =0)
C.!(A%2)
D.A%2
26. 逻辑运算符两侧运算对象的数据类型( )。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
27. 运行程序:
main()
{ int a=1,b=2;
a+=b;b=a-b;a-=b;
printf("%d,%d\n",a,b);
}则输出结果是( )。
A.2,1
B.3,1
C.3,2
D.1,1
28. 以下不构成无限循环的语句或语句组是( )。
A.n=0;<br/>do{++n;}while(n<=0);
B.n=0;<br/>while(1){n++;}
C.n=10;<br/>while(n);{n--;}
D.for(n=0,i=1;  ;i++)n+=i;
29. 已知x=43,ch='A',y=0;则表达式x=y&& ch<'B'&&!y的值是( )。
A.0
B.语法错
C.1
D."假"
30. 以下程序的输出结果是( )。
main()
{ char c='z';
printf("%c",c-22);
A.d
B.e
C.c
D.f
31. 以下不正确的叙述是( )。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
32. 函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是( )。
A.funa(int *x, int *y)<br/>{ int *p;<br/>*p=x; *x=*y; *y=*p;<br/>}
B.funb(int x, int y)<br/>{ int t;<br/>t=x; x=y; y=t;<br/>}
C.func(int *x, int *y)<br/>{  *x=*y; *y=*x;<br/>}
D.{fund(int *x, int *y)
33. 表达式18/4*sqrt(4.0)/8值的数据类型是( )。
A.int
B.float
C.double
D.不正确
34. 在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是( )。
A.extern
B.register
C.auto
D.static
35. 以下叙述中错误的是( )。
A.在程序中凡是以"#"开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#define  MAX  是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
二、 判断题 (共 15 道试题,共 30 分)
1. 已有定义int(*p)();指针p可以指向函数的入口地址。
A.错误
B.正确
2. 局部静态变量是在编译时赋初值的,即只赋初值一次。
A.错误
B.正确
3. 在"文件包含"预处理语句的使用形式中,#include后面的文件名用""表示直接按系统设定的标准方式搜索目录。
A.错误
B.正确
4. 函数的实参和与其对应的形参各占用独立的存储单元。
A.错误
B.正确
5. 表达式 4/7 和 4.0/7 的值相等。
A.错误
B.正确
6. C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。
A.错误
B.正确
7. 若 int i=10,j=2; 则执行完 i*=j+8; 后 i 的值为28。
A.错误
B.正确
8. 如果形参和实参的类型不一致,以实参的类型为准。
A.错误
B.正确
9. 若要"为读/写建立一个新的文本文件",在fopen函数中应使用的文件方式为"w+"。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。