1、 说明: 本试卷将作为样卷直接制版胶印,请命题教师在试题之间留足答题空间。 制卷人签名: 制卷日期: 审核人签名:: 审核日期: ………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………装…………………… 订……………………线…………………………………………………………………
2、 学院 专业 班级 学号 姓名 题 号 一 二 三 四 五 六 七 八 总分 阅卷 教师 得 分 …………………………………………………………………………………
3、…………………………… 得 分 一、单项选择题(每小题2 分,共40分,请将正确答案写在【 】内) 1. 在一个C程序中 。 【 】 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 2.在C语言中,数字029是一个 。 【 】 A) 八进制数 B) 十六进制数 C) 十进制数
4、D) 非法数 3.已知ch是字符型变量,下面不正确的赋值语句是 【 A 】。 A)ch=‘a+b’; B)ch=‘\0’; C)ch=‘7’+‘9’; D)ch=5+9; 4. 在宏定义#define MAX 30中,用宏名代替一个____。 【 】 (A) 常量 (B) 字符串 (C) 整数 (D) 长整数 5. 已知ch是字符型变量,下面正确的赋值语句是【 】。 A)ch=‘123’; B)ch=‘\xff’; C)ch=‘\08’; D)ch=“\”; 6 若有定义:int a=8,b=5,c;,执行语句c=a/b
5、0.4;后,c的值为【 】。 A) 1.4 B) 1 C) 2.0 D) 2 7. 已定义c为字符型变量,则下列语句中正确的是【 】。 A) c=‘97’; B) c="97"; C) c=97; D) c="a"; 8. 设 int x=1, y=1; 表达式(!x||y- -)的值是【 】。 A) 0 B) 1 C) 2 D) -1 9. 以下程序中,while循环的循环次数是【
6、 】。 main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } ...... } A) 1 B) 10 C) 6 D) 死循环,不能确定 10. 逗号表达式"(a=3*5,a*4),a+15"的值是【 】。 A) 15 B) 60 C) 30 D) 不确定 11. printf函数中用到格式符%
7、5s,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式【 】。
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
12. 若运行以下程序时,输入3584↙,则程序的运行结果是 。 【 】
#include 8、1 : putchar (c+3) ;
case 2 : putchar (c+3) ; break ;
case 3 : putchar (c+2) ;
default : putchar (c+1) ; break ;
}
printf(“\n”); }
(A)668977 (B)668966 (C)66778777 ( D)6688766
13.下列常数中不能作为C的常量的是 。 【 】
A) 0xA5 B 9、 2.5e-2 C) 3e2 D) 0582
14. 英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为【 】。
A) 50 B) 66 C) 52 D) 68
15. 以下程序的输出结果是( )。 【 】
void main()
{ int a=3;
printf(“%d\n”,( a-=a*a) );
}
A) –6 B)12 C) 0 D) -12
16. 若有以下 10、定义和语句:
char c1='a', c2='f';
printf("%d,%c\n",c2-c1,c2-'a'+'B');
则输出结果是:( ) 【 】
A) 2 ,M B) 5,! C) 2,E D) 5,G
17 、若int a,b; scanf(“%d%d”,&a,&b); 不可以用【 A 】作为输入的分隔符。
A) , B) 空格 C) 回车 D) TAB键
18. 若有以下程序段, 11、
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是( )。 【 】
A) 0 B) 0.5 C) 1 D) 2
19. 有如下程序
void main()
{ int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是( )。 【 】
A) 12、 3 4 B) 4 2 C) 4 3 D) 3 3
20. 已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )。【 】
if(x>y)
z=x; x=y; y=z;
A)x=10,y=20,z=30 B)x=20,y=30,z=30
C)x=20,y=30,z=10 D)x=20,y=30,z=20
得
分
二、判断题(每题2分,共12分,)
1在宏定义中,由于是定义一个常量,所以宏不能有参数。 【 】
2、在一个函数内部 13、可以在复合语句中定义变量,这些变量只在本复合语句中有效。 【 】
3. 字符个数多的字符串比字符个数少的字符串大。 【 】
4. 若变量j已被赋值为8,则执行完语句0||j++后,j值为9。 【 】
5 若变量j已被赋值为8,则执行完语句1&&j++后,j值为9。 【 】
6. C语言在判断一个量是否为真时,若值为负值则代表“假”。 【 】
得
分
三、填 14、空题(每空2分,共14分)
1. 1、百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?
void main( )
{ int hb,hm,hl;
for(hb=0;hb<=33; 【1】 ) 【1】
for(hm=0;hm<=50;hm++)
{ hl=100-hb-hm;
if(hb*3.0+hm*2.0+【2】/2.0==100.0) 【2】 15、 printf("hb=%d,hm=%d,hl=%d\n", 【3】); 【3】
}
}
2、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请在 内填入正确内容。
#include 16、c>=‘A’&&c<=‘Z’) m++;
if(c>=‘a’&&c<=‘z’) n++;
}
printf(“%d\n”,m 17、double fabs(double x))小于为止。 (10分)
2. 输出如右图所示的平行四边形。(11分)
******
******
******
******
******
******
3.从键盘输入4个数,编写程序将4个数按从小到大的顺序输出。(12分)
(第 6 页 共 6 页)






