C语言笔试卷
C语言程序设计(07春)
选择题
21. 以下关于C语言源程序的叙述中,错误的是 (21) 。
一个C源程序由若干个函数定义组成,其中必有且仅有一个名为main的函数定义
函数定义由函数头部和函数体两部分组成
在一个函数定义的函数体中允许定义另一个函数
在一个函数定义的函数体中允许调用另一个函数或调用函数自身
22. 以下表示中,不能用作C语言常量的是 (22) 。
A. 0ULB. (long)123C. 1e0 D.‘\x2a’
23. 以下标识符中,不能用作变量名或自定义函数名的是 (23) 。
A. mainB. scanfC. _floatD. sizeof
24.以下表示数学式“a
A. a
C. !(a>=b)&&!(b>=c)D. !(a>=b||b>=c)
25. 以下程序运行后的输出结果是 。
A. 2 2B. 7 2 C. 7 5D. 6 2
main()
{ char a[7]="a0\0a0\0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d",i,j);
}
26. 下面关于循环语句for、while、do_while的叙述中,正确的是 (26) 。
三种循环语句的循环体都必须放入一对花括号中
三种循环语句中都可以缺省循环终止条件表达式
三种循环语句的循环体都至少被无条件地执行一次
三种循环语句都可能出现无穷循环
27. 以下程序段中,有语法错误的是 (27) 。
28. 若有声明“int a[]={1,2,3,4},*p,i;”,则以下程序段中不能输出13的是 (28) 。
for(i=0;i<4;i+=2) printf("%d",a[i]);
for(p=0;p<4;p+=2) printf("%d",a[p]);
for(p=a;p
for(p=a,i=0;i<4;i+=2) printf("%d",p[i]);
29. 若有如下的类型定义和变量声明,则在给出的选项中值不为7的表达式是 (29) 。
A.ptr->a B.(++ptr)->a C.x[1].a D.x[0].b->a struct ss { int a; struct ss *b; }x[3]={{5,&x[1]},{7,&x[2]},{9,0}}, *ptr=&x[0];
30. 若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abc.txt", 模式字符串 ); ”中,模式字符串应当是 (30) 。
A. "w+"B. "r+"C. "a+"D. "r"
二、填空题
基本概念(5分)
1.在声明局部变量时,不能使用的存储类别标识符是 (1) 。
2.与整型数学算式等价的C语言表达式是 (2) 。
3.在以下程序的main函数中,语句“fun(x,10);”内的实参x表示数组x的 (3) 。
void fun(int a[10],int n)
{ int i;for(i=0;i
main()
{ int x[10]={0}; fun(x,10);}
4.已知程序中有声明“int a;long b;”,若需要接收从键盘输入的电话号码字符串(010其中010是区号电话号码)并将其中的区号、电话号码分别存储到变量a、b中,则实现该功能的输入语句应为“scanf(“ (4) ”,&a,&b);”。
5.若要使表达式p="jiangsu"无错误(包括警告错误),p声明5) 。#include "stdio.h"
int a;
int m(int a)
{ static int s;
return (++s)+(--a);
}
void main()
{ int a=2;
printf("%d",m(m(a)));
}
7.以下程序运行后输出结果为 (7) 。
#include "stdio.h"
enum days { mon=1,tue,