【HNCE网上考试系统 v9.6】  本套软件使用权属于:河南工业大学
考试课程:C程序设计  考试时间:100分钟  考场:未定义  考试日期:2004.08.05
--------------------------------------------------------------------------------
本卷共有3道大题:
一、单项选择题(40道小题,共45分)
1、若已定义x和y为整型变量,且x=7,则表达式y=2.3+x/2的值是( )。(1分)
A、6 B、5
C、5.0 D、6.0
2、已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后,c2中的值为( )。(1分)
A、D B、68
C、不确定的值 D、C
3、在C语言中,int、char和short三种类型的数据在内存中所占用的字节数( )。(1分)
A、由用户自己定义 B、均为2个字节
C、是任意的 D、由所用机器的机器字长决定
4、以下选项中不正确的实型常量是()(1分)
A、2.607E-1 B、0.8103e  2
C、-77.77 D、456e-2
5、下列不合法的字符常量是(  )。(1分)
A、'\018' B、'\"'
C、'\\' D、'\xcc'
6、以下标示符不是关键字的是( )。(1分)
A、break B、char
C、Switch D、return
7、以下选项中正确的整形常量是()(1分)
A、12. B、-20
C、1,000 D、4 5 6
8、执行printf("%x",100);后的输出结果是()(1分)
A、100 B、0x100
C、0X64 D、64
9、若有以下定义和语句: int a=010,b=0x10,c=10; printf("%d,%d,%d\n",a,b,c); 则输出结果是( )。(1分)
A、8,10,10 B、10,10,10
C、8,8,10 D、8,16,10
10、以下程序段的输出结果是() float a=3.1415; printf("|%6.0f|\n",a);(1分)
A、|3.1415| B、|  3.0|
C、|  3| D、|  3.|
11、已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是: int  a1,a2;  char  c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); (1分)
A、10A 20B B、10 A 20 B
C、10A20B D、10A20 B
12、设有定义:int k=1;float f=7;则下列选项中错误的表达式是( )。(1分)
A、k=k>=k B、-k++
C、k%int(f) D、k>=f>=m
13、当把四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是( )。(1分)
A、k%2 B、k%2==1
C、(k%2)!=0 D、!k%2==1
14、for (i=2; i==0; ) printf(“%d” , i--) ; 以上程序段的循环次数是( )。(1分)
A、2次 B、无限次
C、0 次 D、1 次
15、int k=1;  while (k<=10); 上述语句执行后,变量k的值是( )。(1分)
A、10 B、11
C、9 D、无限循环,值不定
16、在嵌套使用if语句时,C语言规定else总是()。(1分)
A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对
17、若i,j已定义成int型,则以下程序段中内循环体的总执行次数是()。 for(i=6;i>0;i--) for(j=0;j<4;j++){...}(1分)
A、20 B、24
C、25 D、30
18、C语言中,下列哪种说法正确( )。(1分)
A、不能使用do-while语句构成的循环 B、do-while语句构成的循环必须用break语句才能退出
C、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D、do-while语句构成的循环,当while语句中的表达式值为零时结束循环
19、在c语言中引用数组元素时,其数组下标的数组类型允许是()(1分)
A、整型常量 B、整型表达式
C、整型常量或整型表达式 D、任何类型的表达式
20、判断字符串a和b是否相等,应当使用(1分)
A、if(a==b) B、if(a=b)
C、if(strcpy(a,b)) D、if(strcmp(a,b))
21、若有说明:int a[3][4]={0};则下面正确的叙述是(1分)
A、只有数组元素a[0][0]可得到初值0 B、此说明语句不正确
C、数组a中各元素都可得到初值,但其值不一定为0 D、数组a中每个元素均可得到初值0
22、下列叙述中错误的是()。(1分)
A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变
C、在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D、可以通过赋初值的方式确定数组元素的个数
23、以下不正确的定义语句是( )。(1分)
A、double x[5]={1.0,2.0,3.0,4.0,5.0}; B、int    y[5]={0,1,2,3,4,5}};
C、char  c[]={'1','2','3','4','5'}; D、char  c2[]={'a','b','c'};
24、以下函数的类型是()  fff(float x) {printf("",x*x); }(1分)
A、与参数x的类型相同 B、void类型
C、int类型 D、无法确定
25、如果在一个函数的复合语句中定义了一个变量,则该变量( )。(1分)
A、在该复合语句中有效,在该复合语句外无效 B、在该函数内都有效
C、在本程序的原文件范围内均有效 D、此定义方法错误,其变量为非法变量
26、在一个C源程序文件中所定义的全局变量,其作用域为()。(1分)
A、所在文件的全部范围 B、所在程序的全部范围
C、所在函数的全部范围 D、由具体定义位置和extern说明来决定范围
27、用数组名作为函数的实参时,传递给形参的是()(1分)
A、数组的首地址 B、数组的第一个元素
scanf输入整型数组C、数组中的全部元素 D、数组的元素个数
28、设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是(  )。(1分)
A、*p=*q B、p=q
C、*p=&n1; D、p=*q
29、设有定义语句int (*f)(int);,则以下叙述正确的是(  )。(1分)
A、f是基类型为int的指针变量
B、f是指向函数的指针变量,该函数具有一个int类型的形态
C、f是指向int类型一维数组的指针变量 D、f是函数名,该函数的返回值是其类型为int类型的地址
30、执行语句"char a[10] = {"abcd"}, *p = a;"后,*(p+4)的值是(1分)
A、"abcd" B、'd'
C、'\0' D、不能确定
31、若有以下定义语句 union data {int l; char c; float f;}a; int n; 则以下语句正确的是( )。(1分)
A、a=5; B、a={2,'a',1.2};
C、printf("%d\n",a.l); D、n=a;
32、当说明一个结构体变量时系统分配给它的内存是( )。(1分)
A、各成员所需内存的总和 B、结构中第一个成员所需内存量
C、成员中占内存量最大者所需的容量 D、结构中最后一个成员所需内存量
33、当以下叙述中错误的是()。(1分)
A、gets函数用于从终端读入字符串 B、getchar函数用于从磁盘文件读入字符
C、fputs函数用于把字符串输出到文件 D、fwrite函数用于以二进制形式输出数据到文件
34、下列哪个是字符串读函数( )。(1分)
A、fgetc B、fputc
C、fgets D、fwrite
35、当顺利执行了文件关闭操作时,fclose函数的返回值是( )。(1分)
A、false B、TRUE
C、0 D、1
36、当a=1,b=2,c=3,d=4时,执行下面程序段后,x的值是()。 if(a<b) if(c<d) x=1;  else*  if(a<c)    if(b<d) x=2;    else x=3;  else x=6; else x=7;(2分)
A、1 B、2
C、3 D、6
37、main() {int x=2,y=-1,z=2;  if(x<y)    if(y<0) z=0;    else z+=1;  printf("%d\n",z); } 以上程序的输出结果为( )。(2分)
A、3 B、2
C、1 D、0
38、有下列程序: main() {int k=5; while(--k) printf("%d",k-=3); printf("\n"); } 执行后的输出结果是()。
(2分)
A、1 B、2
C、4 D、死循环
39、程序 #include <stdio.h> #define M 5 #define N M+M main() { int k; k=N*N*5; printf("%d\n",k); } 的输出结果是()。(2分)
A、100 B、50
C、55 D、45
40、下列程序运行后的输出结果是()。 main() {int a=4,b=3,c=2,d=1; printf("%d",a<b?a:d<c?d:b); }(2分)
A、1 B、3
C、2 D、4
二、填空题(11道小题,共20分)
1、若a的值为1,则表达式!a||++a的值是。
(1分)
--------------------------------------------------------------------------------
2、若变量已正确定义为整型,则表达式n=i=2,++i,i++的值是。
(1分)
--------------------------------------------------------------------------------
3、执行下列程序时,输入1234567<CR>,则输出结果是。
#include<stdio.h>
main()
{ int a=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
(1分)
--------------------------------------------------------------------------------
4、在C语言中,表示逻辑"真"值使用整型值
(1分)
---------------------------------------------------------
-----------------------
5、写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定义语句是
(1分)
--------------------------------------------------------------------------------
6、字符串是以为结束标志的一维字符数组。
(1分)
--------------------------------------------------------------------------------
7、C语言程序执行的开始处是
(1分)
--------------------------------------------------------------------------------
8、设int a[10],*p = a; 则对a[3]的引用可以是p[3]和*(p)
(1分)
--------------------------------------------------------------------------------
9、以下程序段:
s=1.0;
for(k=1;k<=n;k++)
s=s+1.0/(k*(k+1))
printf("%f\n",s);
请填空,使下面的程序段的功能完全与之等同。
s=0.0
d=1.0
k=0;
do
{
s=s+d;
d=1.0/(k*(k+1));
}
while
printf("%f\n",s);
(4分)
--------------------------------------------------------------------------------
10、下列程序计算1到100的整数的累加和,请完善程序
main()
{int a,sum=;
a=1;
while()
{sum+=a;
a++;}
printf(“sum=%d\n”,sum);
}
(4分)
--------------------------------------------------------------------------------
11、以下程序的功能是计算s=0!+1!+2!+3!+...+n!。请填空。
long f(int n)
{ int i; long s;
s=1L;
for(i=1;i<=n;i++) s=;
return s;
}
main()
{
long s;int k,n;
scanf("%d",&n);
s=0;
for(k=0;k<=n;k++) s=s+;
printf("%ld\n",s);
(4分)
--------------------------------------------------------------------------------
三、编程题(3道小题,共35分)
1、输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)
(10分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者上载源程序
--------------------------------------------------------------------------------
2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
(10分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者上载源程序
--------------------------------------------------------------------------------
3、编写程序,将两个字符串连接起来,不要使用strcat函数。
(15分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者上载源程序
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
强烈建议您使用IE5.0以上,屏幕分辨率800X600以上,真彩,小字体浏览

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。