西北师范大学高等教育自学考试应用型科 _________________专业 《 C 语言》试卷
准考证号班级________ 姓名 ____________ 总分
评卷教师 ______________ 得分
一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填入题后的括号内。每小题1分,共20分)
1.C语言中,只能输入一个字符的函数是________。
A.scanf() B.getchar() C.gets() D.Input() 2.若有 int a; 则a 的最大值为________。
A. 255 B.32767 C.65535 D.4294967295 3.已知:char c1=’a’; 则与该语句等价的是__________。 A.c1=a B.c1=65 C.c1=97 D.c1=”a” 4.设i1=5;执行i1*=i1+i1;则i1的值为_________。 A.30 B.50 C.10 D.5 5.与语句while ( y ) ?; 中的y 等价于________。
A.y=0 B.y= =0 C.y>0 D. y!=0 6.若: a=0;则表达式a&&b&&c的值_________。 A.0 B.无法确定 C.1 D.True 7.下列数组定义中,不正确的是_________。
A.int a[n]; B.int a[10]; C.int a[2+3]; D.int a[2*3];
8.设变量f是float型,则表达式5+(int)f*10 的值的数据类型是_____。 A.int B.float C.double D.char
9.下列的C语言运算符中,运算优先级最高的是_______。 A.* B.! C.+ D.=
10.执行下面两个语句,输出结果是_______。 int a=66,b=98;
printf(“%c,%c\\n”,a,b);
A.B,a B.B,a C.66,98 D.B,b 11.如下循环语句执行结束后,i的值为 _______。 for(i=0;i<10;i++) s=s+i;
A.45 B.10 C.9 D.55
12.设有如下的C语言程序 float f(float x) , …- main()
{ extern int a,b; … -
char c(char x) { extern int a,b; … -
int a,b;
则下列说法一定正确的是 ________。
A.变量a,b是在整个程序中起作用的全局变量 B.变量a,b是在主程序及函数c(x)中起作用的变量 C.变量a,b每个函数中都不起作用 D.以上都不对
13.设有数组 char s[10]; 则正确输入字符串“computer”的语句是_______。
A.scanf(“%s”,&s) B. scanf(“%c”,&s) C.scanf(“%c”,s[0]) D. scanf(“%s”,s) 14.设函数的定义为 void sort(int x[],int y),void具体表示_______。
A.函数的作用域 B.形参的类型 C.函数的存储类 D.函数不带回返回值 15.函数的递归调用是指在调用一个函数的过程中, _______。 A.又直接调用该函数 B.又直接或间接调用该函数 C.又调用main()函数 D.又间接调用该函数 16.关于指针概念下列说法不正确的是 _______。
A.一个变量的地址称为该变量的指针 B.指针变量存放的是内存单元的地址 C.一个指针变量只能指向同一类型的量 D.指针变量不能与数组变量同时使用 17.关于 # define PI 3.14159 叙述不正确的是_______。
A.表示定义符号常量PI B.用PI代表实数3.14159
C.用PI代表字符串3.14159 D.PI只占编译时间,不占程序运行时间 18.下列数据不能存放在动态存储区的是:_______。
A.局部静态变量 B.局部自动变量 C.函数调用时的现场保护和返回地址 D.函数形参变量 19.设有说明,int s[2]={1,2},*p=s;则下列C语句错误的是 _______。 A.s+=1 B.p+=1 C.*p++ D.(*p)++
20.定义p为指向float类型变量d的指针,其中哪一个是正确的 _______。 A.float d,*p=d; B.float d,p=&d; C.float d,p=d; D.float d,*p=&d; 得分
二、填空题 (每小题2分,共20分)
1.C语言是一个函数化的语言,因此,函数是C程序的___________,一个C语言的源程序至少包含一个__________函数。
2.Turbo C上机调试程序的步骤一般可分为:调用Turbo C程序、编辑源文件、
_____________、_____________和查看运行结果。
3.算法的特点有_________ 、确定性、输入性、输出性和__________。
4.良好的算法应该由顺序结构、________结构和________结构三种基本结构组成。 5.Scanf ( )函数的功能是____________________________ ; printf ( )函数的功能是____________________________。
6.C语言中变量起名时,可以使用的三种字符是:_________、________和下划线。 7.一个int 型变量在机内占____字节;一个float型变量占___字节。 8.在C语言的表达式中,0代表______;非0代表_____。
9.C语言的循环语句中,能提前结束循环的是________语句,结束本次循环,直接进行下一轮循环的语句是_________。
10.指针就是______,int i=10,*p; 则p=&i; 的含义是________________。 得分
三、改错题(指出下列程序段的错误,并改正,每小题3分,共15分) 1. # include
{ int a=b=c=3; s=(a+b+c)/2;
area=sqrt((s-a)(s-b)(s-c)); printf(“%s\\n”,area) }
2. main() { float x;y;z; scanf(“%f ”, x); y=2.5; z=x;
printf(“%s\\n”,x+y+z); }
3. main() { char c,s[10]; c=”a”; gets(s);
printf(“%s\\n”,s+c); }
4. main() /*求 s=1+2+3+?+100 的值。*/ { int j,s;
while (j<100)
{ s=s+1; j++; } printf(“%d\\n”,s); }
5. mani() /* 在a,b,c三个数中找出最大数。 */ { int a,b,c,max;
scanf(“%d%d%d”,&a,&b,&c); if (max>b)
max=b; if (max>c) max=c;
printf(“MAX=%d\\n”,max);- 得分
四、阅读题(阅读程序,写出程序的正确运行结果,每小题5分,共25分) 1. main() { int j,a[10];
for (j=0;j<=9;j++) a[j]=j*2-1; for (j=9;j>=0;j--)
printf(“=”,a*j+); }
2. int fac(int n) {
if (n= =1) return(1); else
return(n*fac(n-1)); } main()
, printf(“fac=%d\\n”,fac(5) ); - 3. main()
{ int a=1,b=1; for (j=2;j<=4;j++)
, printf(“= =”,a,b); a=a+b; b=b+a; } } 4. swap (int x,int y) { int t;
t=x; x=y; y=t; printf(“%d,%d\\n”,x,y); - main()
{ int a=10,b=20; swap(a,b);
printf(“a=%d,b=%d\\n”,a,b); }
5. main() { int a,b;
for (a=1;j<6;a++)
{ for (b=1;b<=a;b++) printf( “*” ); printf( “\\n” ); - } 得分
四、程序设计题(每题10分,共20分) 从键盘输入1个整数(2—999之间),判断并输出是否是素数(1代表是,0代表不是),请编写完整的C程序。
2.编程序输出杨辉三角的前6行(用二维数组完成)。 1 1 1 1 2 1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
相关推荐: