扬州大学试题纸
系 课程 C语言程序设计 (A)卷2002—2003学年第2学期
班级_________学号________姓名__________得分___________
一、选择题(每题分,共30分):
1、已知:char a; int b; float c; double d;
则执行语句:c=a+b+c+d; 后,变量c的类型为 。
A. char B. int C. float D. double
2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时,
从第一列开始输入数据12345 67<回车>,则y的值是 。
A. 无定值 B. 345.00000 C. D.
3、设有以下程序段
int x=0; s=0;
while (!x!=0) s+=++x;
printf(“%d”,s);
则 。
A. 运行程序段后输出0 B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的 D. 程序段执行无限次
4、若i为整型变量,则以下循环执行次数是 。
for(i=2; i==0;) printf(“%d”, i--);
A. 无限次 B. 2次 C. 1次 次
5、假设char ch=’a’, *p=&ch; ,以下语句中,有语法错误的是 .
A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++;
6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”};
则language[2]的值是 。
A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值
7、C语言程序中,当调用函数时 。
A. 实参和虚参可以共用存储单元
B. 实参和虚参各占一个独立的存储单元
C. 可以由用户指定是否共用存储单元
D. 由计算机系统自动确定是否共用存储单元
8、在程序中要使用语句:printf(“%s\n”, STRING);
输出提示信息: “OK! ”(包括双引号),则应使用宏定义语句 。
A. #define STRING “OK!” B. #define STRING “”OK!””
C. #define STRING \”OK!\” D.以上三个答案都是错误的
9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。
A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域
B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配
C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取
D. 数组的长度是固定的,链表的长度是不固定的。
10、已知语句FILE *fp; char ch= ‘c’;fp=fopen(“”,”w”); 如果需要将ch的值保存到一个磁盘文件中,则以下函数调用形式中,正确的是_____________。
A. fprintf(“%c”,ch); B. fprintf(“%c”,ch, fp);
C. fprintf(fp,”%c”,ch); D. fprintf(“”,”%c”,x);
11、以下标识符中,不能作为合法的C用户定义标识符的是 。
A. For B. printf C. getchar D. sizeof
12、设p为指向结构体变量的指针,num为该结构体中的一个整型成员,y为一整
型变量,则y=++p->num;与 等价。
A. ++p;y=p->num; B. y=(++p)->num;
C. ++(p->num); y=p->num; D. y=p->num;++y;
13、若要对a进行++运算,则a应具有下面说明 。
A. int a[3][2] B. char *a[ ]={“12”,”ab”};
C. char (*a)( ); D. int b[10], *a=b;
14、以下程序段运行后,a,b的值是
int a,b,d=241;
a= d/100%9;
b=(-1)&&(-1);
A. 6,1 B. 2,1 C. 6,0 D. 2,0
15、以下正确的说明语句是 。
A. int *b[ ]={1,2,3}; B. int a[3]={1,2,3},*b[3]={a[0],a[1],a[2]};
C. int a[3],*b[3]={&a[0],&a[1],&a[2]}; D. int a[3][2],(*b)[3];b[0]=&a[2][1];
16、下面语句,合法是 。
A. scanf(“%7.2f”,&x); B. b=getchar(a);
C. if((a=b;)>0) t=a; D. printf(“%”,”CHINA”);
17、下述程序段中,无语法错误的是 。
A. int a=2,b=0; B. char a=’A’,b=0;
switch(a) switch(a)
{ case b+1:a--;break; { case ‘A’:b++;break;
case b+3:a++;break; case -1 : b=3;
} }
C. int a=2,b=5; D. #define N 10
switch(b) int a=2,b=0;
{ case b>0: a=1;break; switch(a)
case b= =0:a=0;break; { case N-9: b++;break;
} case 1: b=1;break; }
18、以下说法不正确的是 。
A. 在不同函数中可以使用同名变量
B. 形式参数是局部变量
C. 在函数内定义的变量只在本函数范围内有效
D. 在函数内的复合语句中定义的变量只在本函数范围内有效
19、在程序的执行过程中,该程序的某一个函数f中说明的static型变量x有这样的特性 。
A. x存在于函数f被调用期间且仅能被函数f所用
B. x存在于整个程序执行过程中且仅能被函数f所用
C. x存在于函数f被调用期间且可被所有函数所用
D. x存在于整个程序执行过程中且可被所有函数所用
20、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执
行的赋值语句是 。
A. c=*p1+*p2; B. p2=c;
C. p1=p2; D. c=*p1*(*p2);
二、基本概念题(每题2分,共10分)
1、一个C语言的语句至少应包含一个 。一个C源程序至少应包含一个
。
2、当程序读写数据文件时,需要有声明语句FILE *fp; 在该声明语句之前必须包含头文件 。
3、 char *p()说明的含义是 。
4、只能在循环体中出现的语句是________________。
5、C语言可以处理的文件类型是________文件和________文件。
三、阅读程序写出程序结果(每空2分,共20分):
1、若有int a=1; printf(“%d\n”,a*=a/=-a);
则输出结果为 。
2、下面程序的运行结果是 。
main()
{ int i, j=1;
for(i=j==2; i<=2*j; i++)
switch (i/j+1)
{ case 0:
case 1: printf(“**”);break ;
case 2: printf("##");
}
}
3、设有以下的宏定义MAX,程序的运行结果为 。
#define MAX(a,b) (a>ba+1:b)+1
main()
{ int i=16,j=8,k;
printf("%d\n”,MAX(i,j));
}
4、以下程序输出结果是__________。
enum week{SUN=7,MON=1,WED,TUS,THS,FRI,SAT};
数组和链表 main()
{ printf(“%d”,hour(FRI,SUN)); }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论