出自:兰州大学C语言程序设计

4. (4分)int k=0;do{++k;}while(k>=0);是无限循环的语句
3. (4分)main(){int x,y,z;x=1;y=1;z=0;x=x||y&&z;printf(.%d,%d.,x,x&&!y||z);}程序的运行结果是1,1
2. (4分)C语言中,共用体类型的变量在程序运行期间,所有成员都在内存中.
1. (4分)若有说明int c; 则while(c=getchar());是错误的C语句.
21. (4分)根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary.,18,.adam.,16 }; A. printf(.%c\n.,class[3].name) B. printf(.%c\n.,class[3].name[l]) C. printf(.%c\n.,class[2].name[l]) D. printf(.%c\n.,class[2].name[0])
(4分)凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A. auto B. static C. extern D. register
19. (4分)C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( ) A. float型 B. int型 C. long型 D. double型
18. (4分)以下运算符优先级最高的是( ) A. && B. & C. || D. |
17. (4分)已有定义int k=2;int *p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是( ) A. k=*p1+*p2 B. p2=k C. p1=p2 D. k=*p1*(*p2)
16. (4分)C语言提供的合法关键字是( ) A. break B. print C. funtion D. end
15. ((4分)语句while(!E);中的!E等价于( ) A. E= =0 B. E!=1 C. E!=0 D. E= =1
14. (4分)定义一个结构体变量时,系统分配给它的内存是( ) A. 结构体中第一个成员所需内存量 B. 结构体中最后一个成员所需内存量 C. 成员中占内存量最大者所需内存量 D. 各成员所需内存量的总和
13. (4分)若x、i、j和k都是int型变量,则计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32) A. 4 B. 16 C. 32 D. 52
12. (4分)设有以下程序:#inlude main(){int * *k,*j,i=100;j=&i;k=&j;printf(“%d”, * *k);}上述程序的输出结果是( ) A. 运行错误 B. 100 C. i的地址 D. j的地址
11. (4分)以下不正确的定义语句是( ) A. double x[5]={2.0,4.0,6.0,8.0,10.0} B. int y[5]={0,1,3,5,7,9} C. char c1[]={.1.,.2.,.3.,.4.,.5.} D. char c2[]={.\x10.,.\xa.,.\x8.}
(4分)若有以下定义:char s[10]=.include.,*p=s;则不能代表字符u的表达式是( ) A. s[4] B. s+4 C. *(p+4) D. p+=4,*p
8. (4分)以下有关宏替换的叙述不正确的是( ) A. 宏替换不占用运行时间 B. 宏名无类型 C. 宏替换只是字符替换 D. 宏名必须用大写字母表示
7. (4分)判断char型变量c1是否小写字母的正确表达式为 A. .a.<=c1<=.z. B. (c1>=.a.)&&(c1<=.z.) C. (c1>=a)&&(c1<=z) D. (.a.<=c1)||(.z.>=c1)
6. (4分)对说明语句int a[10]={6,7,8,9,10};的正确理解是( ) A. 将5个初值依次a[1]至a[5] B. 将5个初值依次a[0]至a[4] C. 将5个初值依次a[5]至a[9] D. 将5个初值依次a[6]至a[10]
5. (4分)设有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf(.%d.,s);则( ) A. 运行程序段后输出0 B. 运行程序段后输出1 C. 循环的控制表达式不正确 D. 程序段执行无限次
4. (4分)设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是( ) A. while循环执行10次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次
(4分)以下叙述中不正确的是( ) A. 预处理命令都必须以#开始 B. 在C程序中凡是以#开始的语句行都是预处理命令行 C. C程序在执行过程中对预处理命令行进行处理 D. 以下是正确的宏定义 #define IBM_PC
2. (4分)以下对C语言函数的有关描述中,正确的是 A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个源程序文件中
1. (4分)以下叙述正确的是( ) A. 在C程序中,main函数必须位于程序的最前面 B. 在C程序的每一行只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
4. (4分)C语言是解释性语言
3. (4分)在计算机内部,unsigned int 和 int类型的数据所占存储空间大小是一样的.
21. (4分)以下不正确的说法为( ) A. 在不同函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在函数内定义的变量只在本函数范围内有效 D. 在函数内的复合语句中定义的变量在本函数范围内有效
20. (4分)若有以下定义,int a,b;float x; 则正确的赋值语句是( ) A. a=1,b=2 B. b++ C. a=b=5 D. b=int(x)
19. (4分)以下程序main(){int i=010,j=10,k=0x10;printf(.%d,%d,%d .,i,j,k);的输出结果是( ) A. 8,10,16 B. 8,10,10 C. 10,10,10 D. 10,10,16
18. (4分)根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary.,18,.adam.,16 }; A. printf(.%c\n.,class[3].name) B. printf(.%c\n.,class[3].name[l]) C. printf(.%c\n.,class[2].name[l]) D. printf(.%c\n.,class[2].name[0])
17. (4分)若有定义:int (*p)[4];则标识符p( ) A. 是一个指向整型变量的指针 B. 是一个指针数组名 C. 是一个指针,它指向一个含有四个整型元素的一维数组 D. 定义不合法
16. (4分)若有说明:int a[10];则对数组元素的正确引用是( ) A. a[10] B. a[3,5] C. a(5) D. a[10-10]
15. (4分)struct st {int age;int num;}stul, *p; p=&stul;以下对结构体变量stul中成员age的非法引用是( ) A. stul.age B. age C. p-->age D. (*p).age
14. (4分)C语言中,逻辑真表示为( ) A. TRUE B. .y.或.Y. C. 1 D. 非零值
13. (4分)设有以下程序片段:char a[ ]=.hello.,*p;p=a;printf(.%d.,*(p+5));执行上面的程序片段后的结果为( ) A. 111 B. 0 C. 104 D. 不确定的值
12. (4分)阅读以下程序,int w=1,x=2,y=3,z=4,m;m=w A. 1 B. 2 C. 3 D. 4
11. (4分)一下关于宏替换的叙述不正确的是 A. 宏替换只是字符替换 B. 宏名无类型 C. 宏替换不占用运行时间 D. 宏替换不占用编译时间
10. (4分)设有整型变量m值为8,下列赋值语句中,正确的是( ) A. m=m++ B. ++m=6 C. m+1=8 D. m+1+=8
9. (4分)设整型变量a和b的值分别为8和9。printf(.%d,%d.,(a++,++b),b--);的输出是( ) A. 8,8 B. 8,7 C. 9,9 D. 10,9
8. (4分)下面的程序main(){int x=3;do{printf(“%d ”,x-=2);}while(!(--x));},描述正确的是( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循
7. (4分)下列有关字符数组与字符串的说法中正确的是( ) A. 字符数组中存放的一定是—个字符串 B. 所有的字符数组都可以被当作字符串处理 C. 对存放字符串的字符数组可以象一般数组一样对数组中的单个元素进行操作 D. 一个字符数组可以认为就是一个字符串
6. (4分)以下运算符优先级最高的是( ) A. && B. & C. || D. |
5. (4分)以下read函数的调用形式中,参数类型正确的是( ) A. read(int fd,char *buf,int count) B. read(int *buf,int fd,int count) C. read(int fd,int count,char *buf) D. read(int count,char *buf,int fd)
4. (4分)有int x=3,y=4,z=5;则下面表达式中值为0的是( ) A. x.&&.y. B. x<=y C. x||y+z&&y-z D. !((x
3. (4分)定义一个联合体变量时,系统分配给它的内存是( ) A. 联合体中第一个成员所需内存量 B. 联合体中最后一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 各成员所需内存量的总和
2. (4分)根据题目中已给出的数据输入和输出形式,main(){int x;float y;printf(.enter x,y:.);输入语句;输出语句}输入形式:enter x,y:2 3.4输出形式:x+y=5.40, 程序中输入输出语句的正确内容是( ) A. scanf(.%d,%f.,&x,&y),printf(.\nx+y=%4.2f.,x+y) B. scanf(.%d%f.,&x,&y),printf(.\nx+y=%4.2f.,x+y) C. scanf(.%d%f.,&x,&y),printf(.\nx+y=%6.1f.,x+y) D. scanf(.%d%3.1f.,&x,&y),printf(.\nx+y=%4.2f.,x+y)
1. (4分)判断char型变量c1是否小写字母的正确表达式为 A. .a.<=c1<=.z. B. (c1>=.a.)&&(c1<=.z.) C. (c1>=a)&&(c1<=z) D. (.a.<=c1)||(.z.>=c1)
3. (4分)已有定义int i,j;float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数scanf(.%o%x%e.,&i,&j,&x);调用语句的数据输入形式是-12ucu4.1034e2(u代表空格)
2. (4分)C语言中形参到实参传递是双向的
1. (4分)在C 语言中,共用体类型属于构造类型