一、选择题(共20小题,每小题2分,共40分)
1、所有C程序都有且只有一个(C)函数。
A.scanf B.include C.main D.sub
2、按照结构化程序设计的观点,任何程序都可以通过3种基本的控制结构进行组合来实现,这3种基本控制结构为(B)。
A.变量、常量和宏
B.顺序、分支和循环
C.数组、指针和函数
D.整型、浮点型和字符型
3、C语言源程序的扩展名为(C)。
A.exe B.h C.c D.cpp
4、下列选项中不属于结构化程序设计方法的是(D)。
A.自顶向下 B.逐步求精 C.模块化 D.可复用
5、以下属于单目运算符的是(A)。
A.++ B./ C.% D.*
6、下列程序输出结果是(B)。
#include<stdio.h>
main()
{int **k,*a,b=100;a=&b;k=&a;printf(“%d\n”,**k);}
A.运行出错 B.100 C.a的地址 D.b的地址
7、已知:int a[]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是(C)
A. &(a+1) B.&(P+1) C.&p[2] D.*p++
8、以下程序的运行结果是(B)。
main()
{int a,b,d=326;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,d)
}
A.6,1 B.3,1 C.6,0 D.3,1
9、若运行时给变量x输入8,则以下程序运行结果为(D )。
main()
{int x,y;
Scanf(“%d”,&x);
y=x>8?x+10:x-8;
printf(“%d\n”,y);
}
A.4 B.3 C.2 D.0
10、有以下程序,程序运行后的输出结果是(A)。
mian()
{int i=1,sum=0;
while(i<=4)
sum=sum+1;
i=i+1;
printf(“%d\n”,sum);
A.4 B.5 C.10 D.死循环
11、执行语句for(i=1;i++<5;)后,变量第i的值为(B)。
A.4 B.5 C.6 D.不定
12、下面叙述中正确的是(B)。
A.对于用户自己定义的函数,在使用前必须加以说明
B.函数可以返回一个值,也可以什么值也不返回
C.说明函数时不必明确其参数类型和返回类型
D.调用函数的实参,只能是有确定值得变量
13.在函数调用语句fun1(fun2(x,y),(x,y),z=x+y);中,fun1的实际参数的个数是(A)。
A.3 B.7 C.4 D.5
14、一个C语言的源程序中(A)。
A.必须有一个主函数
B.可以有多个主函数
C.必须有主函数和其他函数
D.可以没有主函数
15、C语言中最简单的数据类型包括(B)
A.整型、实型、逻辑型 B.整型、实型、字符型
C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型
16、设有定义“int a=2,b=3,c=4;”,则下列选项中为1的表达式为(C)。
A.(!a==1)&&(!b==0) B.(a<b)&&!c&&1 C.a&&b D.!a||(b+c)&&(c-4)
17、有以下的程序段,则(D)
char a[3],b[]=”I am coming.”;
a=b;
printf(“%s”,a);
A.运行后将输出I a B.运行后将输出I am coming.
C.运行后将输出I am D.编译出错
18、设有static char str[]=”Beijing”;则执行printf(“%d\n”,strlen(strcpy (str,”China”)));后的输出结果为(A)。
A.5 B.7 C.12 D.14
19、以下程序的输出结果是(B)。
int mian(void)
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf(“%d\n”,*p+*q);
return 0;
}
A.16 B.10 C.8 D.6
20、下列程序段的输出结果是(C)。
int main(void)
{ int m,k=0,s=0;
for(m=1;m<=4;m++){
switch(m%4){
case 0;
case 1:s+=m;break;
case 2:
case 3:s-=m;break;}
k+=s;
}
printf(“%d”,k);
return 0;
}
A.10 B.-2 C.-4 D.-12
二、程序分析题(共10小题,每小题3分,共30分)
1、下列程序段的输出结果是 10 。
#include <stdio.h>
int main(void)
{
int i, s=0;
for(i=1; i<10; i=i+2)
s=i+1;
printf(“%d\n”,s);
return 0;
}
2、下列程序段的输出结果是 1#2#3# 。
#include <stdio.h>
int main(void)
{
int num=0;
while(num<6){
num++;
if(num==4) break;
printf(“%d#”, num);
}
}
3、下列程序段的输出结果是 onetwo 。
#include <stdio.h>
int main(void)
{
int k=16;
switch(k%3){
case 0: printf(“zero”);
case 1: printf(“one”);
case 2: printf(“two”);
}
}
4、下列程序段的输出结果是 1,2 。
#include <stdio.h>
void swap1(int a, int b)
{ int c=a;
a=b;
b=c;
}
int main(void)
{ int x=1,y=2;
swap1(x,y);
printf(“%d,%d”,x,y);
return 0;
}
5、下列程序段的输出结果是 3 。
#include <stdio.h>
int main(void)
{
int a=1, b=-1, c=3;
if(a<b){
if(b<0)
c=0;
else
c++;
}
printf(“%d\n”,c);
}
6、下列程序段的输出结果是 Thank#you! 。
#include <stdio.h>
int main(void)
{
char b[]=”Thank you!”;
b[5]=’#’;
printf(“%s\n”,b);
return 0;
}
7、下列程序段的输出结果是 -5,-12,-7 。
#include <stdio.h>
void sub(int x, int y, int *z)
{
*z=y-x;
}
int main(void)
{
int a, b, c;
sub(10, 5, &a);
sub(7, a, &b);
sub(a, b, &c);
printf(“%d,%d,%d\n”, a, b, c);
return 0;
}
8、下列程序段的输出结果是 3,2 。
#include <stdio.h>
int main(void)
{ int a=2,b=3;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d\n”,a,b);
return 0;
}
9、下列程序段的输出结果是 9 。
#include <stdio.h>
int main(void)
{
int i=5, j=0;
do{
j=j+i;
i–;
} while(i>3);
printf(“%d\n”,j);
}
10、下列程序段的输出结果是 6 。
#include <stdio.h>
int fun3(int x)
{
static int a=3;
a+=x;
return(a);
}
int main(void)
{
int k=2, m=1, n;
n=fun3(k); n=fun3(m);
printf(“%d\n”, n);
return 0;
}
三、程序填空题(共5小题,每小题2分,共10分)
1、下面的程序计算函数fun(n)=f(0)+f(1)+……+f(n)的值,其中f(x)=x2+x。请填空。
int fun(int n);
int f(int x);
int main(void)
{ printf(”The sum=%d\n”,fun(100));
return 0;
}
int fun(int n)
{ int x, s ;
for(x=0;x<=n;x++)
s+=f(x) ;
return s;
}
int f(int x)
{
return x*x+x ;
}
2、以下程序求任意实数的最大值和最小值。请填空。
main()
{ int i;
float a[10],max,min;
for(i=0;i<10;i++)
scanf(“%f”,&a[i]);
max=min=a[0];
for(i=1;i<10;i++)
{if(max<a[i]) max=a[i] ;
if(min>a[i]) min=a[i] ;
}
printf(“最大值=%f\n”,max);
printf(“最小值=%f\n”,min);
}
四、程序设计题(共2小题,每小题10分,共20分)
1、分段计算居民水费。为了完善分段计算水费的程序,现将居民应交税费y(元)与月用水量x(吨)的函数关系式修正如下,并编程实现。

参考答案,请自己修改合适的变量名(usedWater,summary)或自行优化。

2、从键盘输入一批学生的成绩,计算平均成绩,并统计不及格学生的人数。
参考答案,请自己修改合适的变量名(studentCount,unPassedCount,sumScore,avgScore)或自行优化。
