C语言考试(B)_c语言考试试卷及答案b
C语言考试(B)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言考试试卷及答案b”。
课程名称:C语言程序设计广东工业大学考试试卷(B)试卷满分 100分
考试时间:09年 5月 6日(第12周 星期三)
注:所有答案要写在答题纸上
一、单项选择题(共40分,每题2分)
1、一个可执行C程序的开始执行点是
A.程序中的第一个语句B.包含文件的第一个函数
C.名为main的函数D.程序中的第一个函数
2、下列数据类型中,不属于基本数据类型的是
A.intB.数组
C.floatD.char3、不符合C语言语法法则的标识符是
A._fileB.NAME C.x123D.case
4.、对于C程序的函数,下列叙述中正确的是:
A.函数的定义不能嵌套,但函数调用可以嵌套5
B.函数的定义可以嵌套,但函数的调用不能嵌套
C.函数的定义和调用均不能嵌套
D.函数的定义和调用均可嵌套
5.、关于字符串和字符的说法,不正确的是:
A.“A”与'A'是相同的B.字符可以参加算术运算
C.可以有任何长度的字符串 D.转义字符的长度为16、以下程序段输出的结果是:
Printf(“%dn”,strlen(“ATSn0121”));
A.11B.10C.9D.87、以下只有在使用时才为该类型变量分配存储空间的存储类说明是:
A.auto 和 staticB.auto 和 register
C.register 和 staticD.extern 和 register
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可
用来进行链接指定。
C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和
register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。在函数内部定义的变量成为局部变量。
8、若变量为float 类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a 赋予10.0,b赋予 22.0,c赋
予33.0,不正确的输入形式是:
A.10 B.10,22,33 C.10D.1022
2222 3333
339、以下变量X、Y、Z均为double 类型且已正确赋值,对数字式子XY*Z,不正确的C语言表达式是:
A.X/Y*Z B.X*(1/(Y*Z))C.X/Y*1/ZD.X/Y/Z10、以下程序的输出结果是:
main()
{
int x='f ';
printf(“n%c”,'A'+(x-'a'));
}
A.IB.GC.FD.J11、对两个数组a 和 b 进行初始化,则叙述正确的是:
char a[]=“abcde”;char b[]={'a','b','c','d','e'};
A.a与b数组类型不相同B.a与b长度相同
C.a和b都存放字符串D.a数组比b数组的长度长
12.、参考下面的程序段,下面正确的判断是
#define A 3
#define B(a)((A+1)*a)
……
x=3*(A+B(7));
A.程序错误,不允许嵌套宏定义 B.x=21
C.程序错误,宏定义不允许有参数 D.x=9313、数组名作为参数传递给函数,作为实参的数组名被处理为:
A.该数组的首地址B.该数组元素的个数
C.该数组中各元素的值D.该数组的长度
14、以下程序输出的结果是:
main()
{
int w=4,x=3,y=2,z=1;
printf(“%dn”,(w
}
A.1B.2C.3D.415、下列程序段中,正确的是:
A.int x=0,y=10;B.int x=0,y;
switch(x)switch(x)
{case y: x++;break;{case x>0:y=1;break;
case y+2: x+=10;break;case x==0:y=0;break;
case y-1: x=-7;break;}case x
C.int x=10,y=20, z;D.int x=0,y;
switch(x)switch(x)
{case 12:z=3;break;{case 3:
case y+1:x+=10;break;case-1:y=2;break;
case y-8:y=-3;break;}case 2:break;}
16、有以下函数的定义:int fun(int n,double x){……}若选项中的变量都已经正确定义并赋值,则对函数fun 正确调用的语句是:
A.fun(int y,double m);B.printf(“%dn”,fun(10,12.5));
C.fun(x,n);D.int fun(10,12.5);
17、以下程序段while循环执行的次数是:
int k=0;
while(k=1)k++;
A.无限次B.有语法错误,不能执行
B.一次也不执行 D.执行一次
18、当执行下面的程序时,如果输入ABC,则输出的结果是:
#include “stdio.h”
#include “string.h”
main()
{ char [10]=“12345”;
gets();
strcat(, “6789”);
printf(“%sn”,+1);
}
A.BC67B.2345ABC67C.BC6789 D.BC45678919、以下程序输出的结果是;
void fun(int a,int b, int c){c=a*b;}
main(){int c;fun(2,3,c);printf(“%dn”,c);}
A.6 B.1C.无定值 D.020、当运行以下程序输入三行,每行都是在第一列上开始,则循环输出结果是:
输入:a
b
cdef
#include “stdio.h”
#defineN6
main(){charc[N];inti=0;
for(i=0;i
for(i=0;i
A.abcdef B.aC.aD.a
bbb
ccdefcd
d
e
f
二、填空题(30分,每空2分)
求下列表达式的值(x,y为int 型变量)。
1、设x=4,y=8(x++)*(--y)(28【1】)
2、45%8+(5>4)+(3>6)(6【2】)
把下列条件用关系表达式或逻辑表达式描述(x为int 型变量,c为char型变量)。
3、c为数字字符。(c>=’0’ && c=48 && c
4、x是奇数。(x%2!=0orx%2==1【4】)
5、c语言中,形参的缺省类型是(auto【5】)
6、以下程序段输入数据999ga67,x、y、z的值分别是
(【6】)
int x;char y;float z;
scanf(“%2d%c%f”,&x ,&y ,&z);
printf(“%d ,%c ,%f ”, x, y, z);99, 9,-107374176.0000007、写出输出单精度实数,其输出格式占5位整数和2位小数的格式说明符。
(%8.2f【7】)
8、下列程序是计算 1+2+3+4+……+100的值。
main()
{
int i, s;
s=0i = 1;
do { s=s+i【9】;i++;}
whlie(i
printf(“1+2+3+4+……+100= %d 【11】”,s);
}
9、下列是用冒泡法对n 个数按由大到小的次序进行排序的函数(注:为提高排序速度,在算法中增加了下列措施:当某趟冒泡过程中未发生数据交换时,即表示数据已排序完毕,应提早结束排序工作)。
void bubble(int a[] , int n)
{int i, j , t , flag , temp;
i = 0;
do {i++;
t = n-i;
flag = 0;
for(j = 1【12】;j
if(a [j-1]
{ temp =a[j1] = a [j];a[j] = temp;
flag = 1;【14】;
});
}
三、写出下列程序的运行结果(20分,每题5分)
1、main(){
static char x[ ] = “ABCDE”;E
int i;DE
for(i= 4;i>=0;i--)CDE
printf(“%sn”,x+i);BCDE
}ABCDE2、main()
{
int cc;
for(cc = 1;cc
fun();2,4,6,8
printf(“n”);
}
void fun()
{staticinta;a+=2;
printf(“%d,”, a);
}
3、main()
{
int a;
for(a= 100;a>=0;a--)
{if(a %8==0)
break;
if(a%2==0)
continue;
printf(“%d,” , a);99,97,96
}
printf(“%d ”, a);
}
4、main(){
char st[ ] = “ToStringType”;
scanf(“%s”, st);
int i;
for(i=0;st[i]!= ' ';i++)
if(st[i]>='A' && st[i]
printf(“%c”, st[i]);TST
printf(“n i = %d” , i);i=12
}
四、编程题(10分)
编写一个判 n 是否为素数的子函数 int prime(int n),若n为素数返回1,否则返回0。通过main 函数输入一个整数,调用 prime子函数对整数进行测试
(整数是否为素数)结果。
#include
void main()
{
int prime(int);
int n;
printf(“ninput an integer:”);
scanf(“%d”, &n);
if(prime(n))
printf(“n %d is a prime.n”, n);
else
printf(“n %d is not a prime.n”, n);
getchar();system(“PAUSE”);
}
int prime(int n)
{
int flag=1, i;
for(i=2;i
if(n%i==0)
flag=0;
return(flag);
}一、二、三、四、五、#include void main(){int prime(int);int n;printf(“ninput an integer:”);scanf(“%d”, &n);if(prime(n))printf(“n %d is a prime.n”, n);elseprintf(“n %d is not a prime.n”, n);getchar();system(“PAUSE”);}int prime(int n){int i;for(i=2;i