程序设计语言(C)复习题
一. 判断题
1. (√)C语言本身没有输入输出语句,由系统函数实现输入输出功能。 2. (√)C语言中的用户标识符命名大、小写字符均可,但严格区分。 3. (× )所有被调用的函数一定要在调用之前进行定义。 4. (√)!运算符的优先级高于算术运算符的优先级。 5. (× )char,while,else,scanf,printf 均是C语言的关键字。
6. (× )C程序从main()函数开始执行,并在main()函数中结束,因此main()函数必须写在最前面。 7. (√)静态局部变量在本函数外是存在的,但其它函数不可以访问。 8. (× )语句char c1[]=”China”;char c2[]={?C?,?h?,?i?,?n?,?a?};定义的c1和c2数组的长度相等。 9. (× )在计算机语言中可以准确表示数学上的任意的实数和整数。 10. (× )强制类型转换(int)x改变x的数据类型为int型。
11. (√)字符型数组可以整体输入、输出,但整型数组和实型数组则不能。 12. (√)数组名实际上是一个指针常量,字符串常量代表它在内存中的首地址。 13. (√)若全局变量与局部变量同名,在局部变量的作用范围内,全局变量不可见。
二. 填空题
1. 数制转换:(384. 5)10=( )8=( )16 (f3d.4)16=(
)10=( )2
2. 若ch为char型,ch=?a?+?9?-?4?的值是: ?f? 。 3. 若ch为int型,ch=?D?+?7?-?4?的值是: 71
4. 对嵌套if语句的规定是:else总是与上面最近未配对的if 配对。 5. 若C程序中要调用一些标准数学库函数,文件开头应有预编译命令: #include
6. 定义符号常量N的值为121: #define N 121 。
7. 描述数学命题“1≤a≤10”的C语言逻辑表达式为:a>=1 && a<=10。 8. 缓冲文件系统的特点是:系统自动在内存中为每一个使用的文件开辟一个缓冲区,从内存向磁盘写数据时,先送到缓冲区,当缓冲区装满数据后,才一起送到磁盘;从磁盘向内存读数据时,一次从磁盘读一批数据充满缓冲区,
第 1 页 共 9 页
然后再从缓冲区逐个读数据给程序。
9. 在C中有二种参数传递方式:值传递和地址传递。
10. 语句if (a>b) max=a;else max=b;改用条件运算符表示为: max=a>b?a:b 。 11. 使变量h和m的值分别为6和32,若键盘输入格式为:6-32 (回车)则scanf的写法是: scanf(“%d-%d”,&h,&m); 。
12. 设a=3,b=4,x=3.5,y=2.5 算术表达式(float)a+b%2+(int)x/(int)y的值是:4.0 。 13. 在Turbo C 2.0的IDE环境中编译程序按 F9 键;退出IDE环境按Alt+x 键。 14. C语言中逻辑“真”和“假”值分别用 1、0 表示。
15. 把语句for (i=1,sum=0;i<=10;i++) sum=sum+i;改为while型的循环语句: i=1;sum=0;
while (i<=10) {sum+=i;i++;} 16. 数组名作函数的实参,传送的是数组的首地址。
17. C语言中调用 fopen 函数打开文件,调用 close函数关闭文件。
三. 单项选择题
1. 以下四个常量中,正确的是(B )
A) ?at? B) 0xabc C) -0fff D) 01188
2. 合法的浮点数是:(A )
A) 160.0 B) 1.4e3.0 C) 521 D) .e5
3. 若a=3,b=2,c=1,表达式f=a>b>c的值是:(D )
A) true B) false C) 1 D) 0
4. 以下不正确的if语句形式是:(C )
A) if (x>y && x!=y);
B) if (x==y) x+=y;
C) if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D) if (x 5. 若要定义一个只允许本文件使用的全局变量,应该使用(D )来声明定义。 A) extern B) register C) auto D) static 6. 有字符数组a[80]和b[80],则正确的输出语句是(D ) A) puts(a,b); B) printf(“%s,%s”,a[],b[]); C) putchar(a,b); D) puts(a);puts(b); 7. C语言中,简单变量做实参时(A ) A) 实参和对应的形参各占用独立的存储单元,数据按单向值传递。 B) 实参和对应的形参各占用独立的存储单元,数据按双向值传递。 C) 实参和对应的形参占用相同的存储单元,数据按单向值传递。 第 2 页 共 9 页 D) 实参和对应的形参占用相同的存储单元,数据按双向值传递。 8. C语言规定,函数返回值的类型是由(D) A) return语句中的表达式类型所决定。 B) 调用该函数时的主调函数类型所决定。 C) 调用该函数时系统临时决定。 D) 在定义该函数时所指定的函数类型所决定。 9. 下列定义中,( A )定义了一个指向函数的指针。 A) int (*p)() B) int *p[4] C) int (*p)[4] D) int *p() 10. 下面程序段的运行结果是:( B ) char c[5]={?a?, ?\\0?,?b?,?c?,?\\0?}; printf(“%s”,c); A) ?a? B) a C) a□bc D) abc 11. 下列语句中不正确的是:(C ) A) char *str ;str=”I am a student.”; B) char *str=” I am a student.”; C) char str[20 ]; str=” I am a student.”; D) char str[20 ]=” I am a student.”; 12. 若下面函数调用是正确的,则它的实参个数是(B ) func((e1,e2),(e3,e4,e5), (e6,e7)); A) 1 B) 3 C) 5 D) 7 13. 系统的标准输入文件是指( A ),标准输出文件是指( B ) A) 键盘 B) 显示器 C) 软盘 D) 硬盘 14. 有关结构和联合的陈述不正确的是:(C ) A) B) C) D) 结构类型变量的长度是它的各个域的长度之和。 联合类型变量的长度是它的最长域的长度。 结构类型变量和联合类型变量的各个域均可同时存放值。 联合类型变量的地址和它的各个域的地址是同一地址。 15. 若有以下说明语句: struct student { int age; int num; } std, *p; p=&std; 则以下对结构体变量std中成员num的引用方式不正确的是(D ) A) std. num B) p->num C) (*p) . num D) *p. num 16. 若用fopen函数打开一个新的文本文件,该文件要既能读也能写,则文件打开方式字符串应是( B ) A) “a+” B) “w+” C) “r+” D) “a” 17. 当调用函数fopen( )发生错误时,函数的返回值是:( B ) A) 2 B) 0 C) 1 D) EOF 18. 函数调用语句:fseek(fp,-20L,2);的含义是( C ) 第 3 页 共 9 页 A) 将文件位置指针移到距离文件头20个字节处 B) 将文件位置指针从当前位置向后移20个字节 C) 将文件位置指针从文件末尾处向后退20个字节 D) 将文件位置指针移到当前位置20个字节处 19. 若定义:int a=101,*b=&a;, 则printf(\的输出结果为( A ) A) a的地址 B)b的地址 C)101 D)无确定值 20. 两个指针变量不能进行下面何种操作( B ) A)两个指针变量指向同一个地址 B)两个指针变量相加 C)两个指针变量相减 D)两个指针变量比较 四. 程序阅读与程序设计 1、下面程序的输出结果是(6,0 )。 main() { int a[]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf(\(p+9)); } 2、写结果。 void fun(int *x, int *y) { printf(\main() { int x=1,y=2; fun(&y,&x); printf(\} 输出结果是:2 1 9 8 3、struct stud { int no; struct stud *next; }; main() { int i; struct stud st1,st2,st3,*st; st1.no=1; st1.next=&st2; st2.no=2; st2.next=&st3; st3.no=3; st3.next=null; st=&st1; for(i=1;i<4;i++) { printf(“%d “,st->no); st=st->next; } } 第 4 页 共 9 页
相关推荐: