一、判断题(每题1分)1.函数即可以嵌套定义,又可以嵌套调用.( × )2.unsigned 和void 在C 中都是保留字.( √ )3.表达式 ++i 表示对变量i 自加1. (√ )4.C 语言源程序的基本结构单位是main 函数. ( × )5.字符常量的长度肯定为1. (√ )6.char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b 占用的内存空间大小不一样. ( √ )7.若有int i=10,,j=2; 则执行完i*=j+8;后i 的值为28. (× )8.int i,*p=&i;是正确的C 说明。
( √ )9.While 循环语句的循环体至少执行一次. ( × )10.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. ( √ )11. 7&3+12的值是15.( × )12. C 语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.( √ )13. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". (√ )14. 在C 语言中,整型数据在内存中占2个字节. ( × )15. 对二维数组a 来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的. (× )16. break 语句可用于循环体内,它将退出该重循环. ( √ )17. 将一个字符串"abc"赋给字符串变量str 的方法是str="abc".. (× )18. 参加位运算的数据可以是任何类型的数。
( × )19. C 语言规定:在一个源程序中,main 函数的位置必须在最开始. ( × )20. 静态外部变量只在本文件内可用. ( √ )21. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的.( × )22. 字符串只能存放在字符型数组中. ( √ )23. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". (√ )24. 在标准C 中,"="是判断两个数是否相等. ( × )25. 函数调用可以出现在执行语句中,但不能出现在表达式中. (× )26. break 语句可用于循环体内,它将退出该重循环. ( √ )27. strcat(s1,s2)函数是将字符串s1复制到字符串s2中. (× )28. 函数若无返回值,则它一定无形参。
( × )29. C 语言是一种结构化程序设计语言. ( √ )30. 静态外部变量只在本文件内可用. ( √ )31. 关系运算符<= 与 == 的优先级相同.( × )32. C 语言中的整型常量有3种表示方法. ( √ )33. C 语言中只能逐个引用数组元素而不能一次引用整个数组. (√ )34. char *p="girl";的含义是定义字符型指针变量p,p 的值是字符串"girl". ( × )35. 静态变量和外部变量都是全局变量,它们的存储是静态的. (× )36. 共同体变量所占的内存长度等于最长的成员的长度。
( √ )37. 由于主函数首部经常缩写成main(),所以它不可能有形式参数. (× )38. 通过return 语句,函数可以带回一个或一个以上的返回值。
( × )39. C 语言俗称"低级语言的高级形式",这说明C 语言的功能不强. ( × )40. 程序进行编译时,不为形式参数分配存储空间. ( √ )41. C 语言的当型循环是先执行循环后判断条件.( × )42. "++"运算符的优先级比"+"运算符的优先低.( × )43. 指针就是地址,因此一个变量的指针就是该变量的地址. (√ )44. 在if 语句中,else 前一个语句可不加";" ( × )45. return 后面括号里的表达式的值即是此函数的值. (√ )46.char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b 占用的内存空间大小不一样. ( √ )47. 结构体类型只有一种。
(× )48. 在任何情况下,对二维数组的初始化都可以省略第一维的大小。
( × )49. 结构化程序设计所规定的三种基本控制结构是顺序、选择、输出. ( × )50.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. ( √ )二、单项选择题(每题2分)1.C语言中运算对象必需是整型的运算符是( A )A. %B. /C. !D. *2.C程序的执行是从( A )A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束3.以下选项中,( D )是不正确的 C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a"4.以下程序的输出结果是( C )A.0 B. 1 C. 3 D. 不确定的值#include<stdio.h>main( ){ int x=10, y=3;printf(“%d\n”,y=x/y); }5.以下对二维数组a 的正确说明是( C )A.int a[3][]B.float a(3,4)C.double a[1][4]D.float a(3)(4)6.字符串"ABC"在内存占用的字节数是( B )。
A. 3B. 4C. 6D. 87.下列运算符中优先级最高的运算符是(A)A.!B.% C.-= D.&&8.以下程序的输出结果是( A )A. 1B. 2C. 3D. 4#include<stdio.h>main( ){ int w=4,x=3,y=2,z=1;printf(“%d\n”,(w<x?w:z<y?z:x)); }9.以下叙述正确的是(D)A. do-while语句构成的循环不能用其他语句构成的循环代替.B. do-while语句构成的循环只能用break语句退出C. 用do-while语句构成循环时,只有在while后的表达式为非零时结束循环D. 用do-while语句构成循环时,只有在while后的表达式为零时结束循环10.在定义一个结构体变量时,系统分配给它的内存是( D )。
A.结构体中第一个成员所需内存量B.结构体中最后一个成员所需内存量C.成员中占内存量最大者所需容量D.各成员所需内存量的总和11.若有下列定义,则对a 数组元素地址的正确引用是( C ).int a[5],*p=a;A.*(p+5) B.*p+2C.*(a+2) D.*&a[5]12.下列定义不正确的是( C )。
A.#define PI 3.141592 B.#define S 345C.int max(x,y); int x,y; { } D.static char c;13.在C 语言中,形参的缺省存储类是( A )。
A.auto B.registerC.static D.extern14.以下函数调用语句中实参的个数是( A ).exce((v1,v2),(v3,v4,v5),v6);A.3 B.4 C.5D.615. 以下描述中,正确的是( C )A.预处理是指完成宏替换和文件包含中指定的文件的调用B.预处理指令只能位于C 源文件的开始C.C 源程序中凡是行首以#标识的控制行都是预处理指令D.预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备16.以下字符中不是转义字符的是( C )A.\aB.\bC.\cD.\\17. C 语言程序中必须有的函数是( B )A.#include "stdio.h"B.mainC. printfD.scanf18.有定义:int a=8,b=5,c;, 执行语句c=a/b+0.4;后,c 的值为 ( B)A.1.4 B.1 C.2.0 D.219.以下程序的输出结果是( D )A.i=2,,j=1,k=3 B. i=1,,j=1,k=2 C. i=4,,j=2,k=4 D. i=1,j=1,k=3 #include<stdio.h>main( ){int i,j,k,a=3,b=2;i=(--a==b++)?--a:++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}20. 下列选项中正确的语句组是( D )。
A.char s[8]; s={"Beijing"};B.char *s; s={"Beijing"};C.char s[8]; s="Beijing";D.char *s; s="Beijing";21. 若已定义x 为int 类型变量,下列语句中说明指针变量p 的正确语句是( C).A.int p=&x; B.int *p=x; C.int *p=&x; D.*p=*x;22.sizeof(float)是( C).A.一种函数调用B.一个不合法的表达式C.一个整型表达式D.一个浮点表达式23. 已知year 为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0的值为"真"的数据是( A).A.1990 B.1992 C.1996 D.200024. 下面有关for 循环的正确描述是 ( D )A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来25. 在位运算中,操作数每右移一位,其结果相当于( B).A.操作数乘以2 B.操作数除以2C.操作数乘以16 D.操作数除以1626. 以下能对二维数组a 进行正确初始化的语句是(B)。