科目
C程序设计期中考试
班级
姓名
学号
时间
东北大学试卷 密 封 线 共 6 页 第 1 页
题号
总分
分数
从下列四个供选择的答案中选出一个正确答案(每题2分,共40分)
1.以下说法不正确的是 ( )
A.C程序中必须有一个main()函数,C程序是从main()函数的第1条语句开始执行的
B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的
C.C程序中的main()函数必须放在程序的开始位置
D.C程序中的main()函数位置可以任意指定
2.以下说法不正确的是 ( )
A.C程序中的一行可以写多条语句
B.C程序中的语句可以采用缩进格式书写
C.C程序中的每行只能写一条语句
D.C程序中可以用注释提高程序的可读性
3.属于合法的C语言长整型常量是 ( )
A.5864545 B.0L C.2E10 D.(long)1235456
4.在以下一组运算符中,优先级最高的运算符是 ( )
A.<= B.= C.% D.&&
5.C语言运算对象必须时整型的运算符是 ( )
A.%= B./ C.= D.<=
6.下列选项中,合法的C语言关键字是 ( )
A.VAR B.cher C.integer D.default
7.假定有以下变量定义:
int k=7,x=12;
则能使值为3的表达式是 ( )
x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5
D.(x%=k)-(k%=5)
8.以下选项中属于C语言的数据类型是 ( )
A.复数型 B.逻辑型 C.双精度型 D.集合型
9.设x、y,z和k都是int型变量,则执行表达式X=(y=4,z=16,k=32)
后,x的值为 ( )
东北大学试卷 密 封 线 共 6 页 第 2 页
A.4 B.16 C.32 D,52
10.以下程序的输出结果是 ( )
main()
{int a=3;
printf(“%d\n”,(a+=a-=a*a));
}
A.-6 B.12 C.0 D.-12
11.表示关系x<=y<=z的C 语言表达式为 ( )
A.(X<=Y)&&(Y<=Z) B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z) D.(X<=Y)&(Y<=Z)
12.若有以下定义和语句:
char c1=’b’,c2=’e’;
printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);
则输出结果是 ( )
A.2,M B.3,E
C.2,E D.输出结果不确定
13.假设定义:int x = 3,y = 3; 则复合赋值表达式x /= 1+y的值为 ( )
A,0 B,0.75 C,6 D,以上都错
14.表达式,3>5 && -1 || 6 < 3 - !-1的值是,( )
A,0 B,1 C.表达式不合法 D,均不对
15.语句 if (3/4 > 1/2) a=1; else a=0; 运行后,a的值是 ( )
A,1 B,0 C,与机器有关 D,语法有错
16.已知字符 ‘b’ 的ASCII码为 98,语句printf ("%d,%c",’b’,’b’+1 ) ;的输出为 ( )
A.98,b B.语句不合法 C.98,99 D.98,c
17.对于int a,则表达式 1<=a<=5值是 ( )
A.0 B,1 C,不定 D.表达式语法有错
18.设C语言中,一个int型数据在内存中占2个字节,则unsigned int
型数据的取值范围为 ( )
A.0~255 B.0~32767 C,0~65535 D,0~2147483647
19.表示图中坐标轴上阴影部分的正确表达式是 ( )
//// ////
//// ////
X
a b c
A.(x<=a)&&(x>=b)&&(x<=c)
B.(x<=a)||(b<=x<=c)
C.(x<=a)||(x>=b)&&(x<=c)
D.(x<=a)&&(b<=x<=c)
20.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 ( )
A.须为字母 B.必须为下划线
C.必须为字母或下划线 D.可以是字母、数字和下划线中任一种字符
二、填空题(每空2分,共30分)
1.判断一个字符是否是字母或数字的逻辑判断语句是
2.用下列for循环将大写字母逆序输出(即从Z到A),其语句应为:
for (i=0; i<26; i++) ;
3.语句printf(“%%d%d”,123); 将输出
4.在C语言中,表示逻辑“真”值用
5.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值是
6,以下程序实现输出x,y,z三个数中的最大者,请在【】内填入正确内容。
#include <stdio.h>
main()
{
int x=4,y=6,z=7;
int 【1】;
if(【2】) u=x;
else u=y;
if(【3】) v=u;
else v=z;
printf(“v=%d”,v);
}
7,下面程序的功能是用公式求π的近似值,直到最后一项的值小于10- 6为止,请填空。
#include <stdio.h>
#include <math.h>
main()
{
long i=1;
【1】 pi=0;
while(i*i<=1e+6) { pi=【2】; i++; }
pi=sqrt(6.0*pi);
printf(“pi=%10.6f\n”,pi);
}
8.以下程序的功能是从键盘输入若干个学生成绩,统计计算出平均成绩,
并输出低于平均分的学生成绩,用输入负数结束输入,请填空
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf(“Enter mark;\n”);scanf(“%f”,&a);
while(a>=0.0&&n<1000)
{sum+【1】 ;x[n]= 【2】;
n++;scanf(“%f”,&a);
}
ave=【3】;
printf(“Output:\n”,ave);
for(i=0);i<n;i++
if(【4】) printf(“%f\n”,x[i])
}
9.下面程序输出结果是
main()
{char b[]=“Hello,you”;
b[5]=0;
printf(“%s\n”,b);
}
三、回答相应问题(共20分)
有人写出下面一条语句:
printf(“a=%d,b=%d,c=%d\”,a,b,c);
编译时出现引号不配对的信息,试分析其原因。(5分)
2,试阐述‘x’和“x”的区别。(5分)
3,假设有定义:static char str[]={‘C’,‘h’,‘i’,‘n’,‘a’};
则:printf(“%s”,str); 的输出结果是什么?说明理由。(5分)
4.假设有以下程序段:
int a[10];
……
a[10]=3;
……
试分析两个a[10]的区别。(5分)
四、编程每题5分共10分
1.已知小鸡0.5文钱/只,公鸡2文钱/只,母鸡3文钱/只,现要求100文钱正好买100只鸡,请给出所有的组合。
用数组输出一个钻石图形
*
* *
* *
* *
*