一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上

  1. 以下叙述不正确的是()。

A.C程序中,语句之间必须用分号分隔。
B.C程序中,多行语句可以写在一行上。
C.C程序中,可以不必包含主函数。
D.一个C程序,可以由多个函数组成。

  1. ()是合法的用户自定义标识符。

A.b-b
B. float
C.
D. _isw

  1. 用()三种基本控制结构,就可以编写任何复杂的计算机程序

A.VO,转移,循环
B.转子(程序),返回,处理
C.顺序,选择,循环
D.输入,输出,处理

4·以下选项中,不能用做数据常量的是()。

A.01115
B.0X118
C. 1.5e1.5
D.115L

5.定义char a;则以下赋值语句不恰当的是()

A. a= 65;
B. a= “A”;
C. a = ‘165’;
D.a=6+‘A’;

6.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第2位四舍五人的是()。

A.x=x10+0.5/10.0
B.x=(x
10+0.5)/10.0
C. x=(int)(x*10+0.5)/10.0
D.x=(x/10+0.5)/10.0

7.下列选项中,值为1的表达式是()。

A. 1-‘0’
B. 1-‘\0’
C. ‘l’-0
D. ‘\0’-‘0’

  1. 设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()

A.1
B.2
C.3
D.4

9.设a=3,b=2,则表达式ab>>2的值的二进制表示为()。

A. 00000110
B.00000011
C.00000100
D.00000010

10.字符串”\“ABC”\”的长度是()

A. 11
B.7
C.5
D.3

11.设有定义:int a=2,b=4,c=5,以下语句中执行效果与其它三个不同的是()。

A. if(a>b) c=a,a=b,b=c;
B. if(a>b) (c=a,a=b,b=c;)
C. if(a>b) c=a;a=b;b=c;
D. if(a>b) (c=a;a=b;b=c;)

12.设i,x都是int类型,则下面的for循环体可执行多少次?for (i=0, x=0;i<=9 &&x!=876;i++)printf(“*”);

A.9次
B.10次
C. 876次
D.无限循环

13.请读程序:

#includeint main(){int x,i;for(i=1;i<=50;i++){ x=i;if(x%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}return 0;}
则上面程序的输出结果是()

A. 28
B. 27
C. 42
D.41

14.以下能正确定义二维数组的语句是()。

A. int a00;
B. int a][3];
C. int a[2]0:
D. int a[2][3];

15,如果变量定义如下int i,j, tab[3][4):,则正确的语句是()

A. tab[0][]=0;
B. tab=100;
C. for(i = 1; i <= 3; i++){
for(j= 1; i <= 4;j++){
scanf(“%d “, &a[i]li);
}}
D. for(i= 0; i<3; i++){
for(j = 0; j < 4;j++){
printf(”%4d”, tab[i][i);
}
printf(“n”); }

16.文件中定义的全局变量的作用域为()

A.本程序全部范围
B.本文件全部范围
C.函数内全部范围
D.从定义该变量的位置开始到本文件结束

17.有如下函数调用语句:func(recl, rec2+rec3, (rec4, rec5));则该函数调用语句中,含有的实参个数是()

A.3
B.4
C.5
D.有语法错

18.若有定义 char str]=(“Python”, “SQL”,“JAVA”, “PHP”, “C++”);则表达式stfl]> *st3]比较的是()

A.字符P和字符J
B.字符串 SQL和字符串 PHP
C.字符串 Python 和字符串JAVA
D.字符S和字符P

19.关于宏的叙述中正确的是()。

A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数类型应与宏定义一致
C.宏替换不占用运行时间,但占用编译时间
D.宏调用此函数调用耗费时间

20.C语言中结构类型变量在程序执行期间()。

A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中

二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。)
1_________

#include void main() {int num = 0;while (num <= 6) {num++;if (num % 3 == 0) {break;}printf("%d#", num);}}

2________

#include void swap(int x, int y){int t; t = x; x = y; y = t; } void main(){int a = 3, b=5; swap(a, b); printf("a=%d, b=%d\n", a, b);}

3________

#include void main(){unsigned x=23;int p=2,n=2;printf("%uln",(x>>(p+1-n))&~(~0<<n);}

4______________

#include int f(int a){return a%2;}int main(){int s(8)=(1,3,5,2,4,6),d=0,i; for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d); return 0;

5___________

#include #define PR(ar) printf("%d ", ar)void main() {int a[] = {1, 3, 5, 7, 9, 11, 13, 15};int *p = a + 5;for (int j = 3; j; j--) {switch (j) {case 1:case 2:PR(*p++);break;case 3:PR(*(--p));break;}}}

三、程序填空题(共35分。请将答案填写在答题纸的相应位置上。

  1. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1 至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至 11 报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。
#include  int main(){int x; for (_______){ if(_______) { printf(" x = %d\n", x); ________; } } return 0; }

2,以下函数的功能是删除学符串s中的所有数字字符。例如,若输入字符串为abed1234efg567″,则删除数字字符后的字符串为“abcdefg”。请填空。
#include
deleDigits(char *s){
int n = 0, i;
for (i = 0; s[i]; i++)
if (
)
s[
]=a[i];
s[n]=
__;
}
int main()
{
char str[80];
scanf(“%s”,str);
deleDigits(str);
print(“%s\n”,str);
return 0;
}

四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)

1,编写程序,要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为7084分,C等为6069分,D等为60分以下。成绩的等级由键盘输入。

  1. 现有10个城市名及其春、夏、秋、冬四个季节的平均温度值,编写程序,定义合适的结构体输入10个城市名和四季温度,计算各个城市的全年平均温度,并按照平均温度从低到高的顺序输出城市名、四季温度及全年平均温度。

  2. 按要求编程:
    (1)设计一个函数int isprime(int x)用于判断一个整数是否为素数,是素数返回1,否则返回0。(素数是只能被 1和它自身整除的整数)
    (2)在主函数中调用 isprime函数,输出 100-999之间的个位数字为7的所有素数之和。