main()
{int a,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7)
{n=n*a;s=s+n;++count;}
printf(”s=%d”,s);
}
10、以下程序得输出结果就是
int k,n,m;
n=10;m=1;k=1;
while(k++〈=n)
m*=2;
printf(“%d\\n",m);
二、单项选择题(每题2分,共40分)
1、能将高级语言编写得源程序转换成目标程序得就是______.
A) 编辑程序 B) 编译程序 C) 解释程序 D) 链接程序
2、以下叙述中正确得就是______。
A) 构成C程序得基本单位就是函数
B) 可以在一个函数中定义另一个函数
C) main()函数必须放在其它函数之前
D) 所有被调用得函数一定要在调用之前进行定义
3、以下选项中合法得实型常数就是______.
A) 5E2、0 B) E-3 C) 、2E0 D) 1、3E
4、以下选项中合法得用户标识符就是______.
A) long B) _2Test C) 3Dmax D) A、dat
5、已知大写字母A得ASCII码就是65,小写字母a得ASCII码就是97,则用八进制表示得字符常量‘\101’就是______。
A) 字符A B) 字符a C) 字符e D) 非法得常量
6、以下非法得赋值语句就是______。
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j〉0;
7、设a与b均为double型常量,且a=5、5、b=2、5,则表达式(int)a+b/b得值就是______。
A) 6、500000 B) 6 C) 5、500000 D) 6、000000
8、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车〉,使i得值为1、j得值为2、k得值为3,以下选项中正确得输入语句就是______。
A) scanf("%2d%2d%2d",&i,&j,&k); B) scanf("”%d %d %d",&i,&j,&k);
C) scanf(”%d,%d,%d”,&i,&j,&k); D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);
9、与数学式子3乘以x得n次方/(2x-1)对应得C语言表达式就是______。
A) 3*x^n/(2*x-1) B) 3*x**n/(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1)) D) 3*pow(n,x)/(2*x-1)
10、若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k); printf(”%d,%d ",m,i);
}
执行后得输出结果就是______。
A) 8,6 B) 8,3 C) 6,4 D) 7,4
11、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2得值就是______。
A) 6 B) 0 C) 2 D) 1
12、有一函数
1 x>0
y= 0 x=0
-1 x〈0,
以下程序段中不能根据x得值正确计算出y得值得就是______。
A) if(x>0) y=1;else if(x==0) y=0;else y=-1;
B) y=0;if(x〉0) y=1;else if(x<0) y=—1;
C) y=0;if(x〉=0)if(x〉0) y=1;else y=-1;
D) if(x〉=0) if(x〉0) y=1;else y=0;else y=-1;
13、以下选项中,与k=n++完全等价得表达式就是_______.
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
14、以下程序得功能就是:按顺序读入10名学生4门课程得成绩,
计算出每位学生得平均分并输出,程序如下:
main()
{int n,k;
float score,sum,ave;
sum=0、0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{scanf(”%f”,&score); sum+=score;}
ave=sum/4、0;
printf("NO%d:%f ",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句
出现在程序得位置不正确。这条语句就是______。
A) sum=0、0;
B) sum+=score;
C) ave=sum/4、0;
D) printf("NO%d:%f ”,n,ave);
15、有以下程序段
int n=0,p;
do {scanf("%d",&p);n++;} while(p!=12345&&n<3);
此处do—while循环得结束条件就是______。
A) p得值不等于12345并且n得值小于3
B) p得值等于12345并且n得值大于等于3
C) p得值不等于12345或者n得值小于3
D) p得值等于12345或者n得值大于等于3
16、有以下程序
main()
{int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{default:m++;
case 0:m++;break;
}
}
printf("%d ”,m);
}
程序运行后得输出结果就是______。 A) 1 B) 2 C) 3 D) 4
17、C语言中,函数值类型得定义可以缺省,此时函数值得隐含类型就是______。
A) void B) int C) float D) double
18.求取满足式 12+22+32+ …… +n2 ≤1000得n,正确得语句就是____。
A) for(i=1,s=0;(s=s+i*i)<=1000;n=i++) ;
B) for(i=1,s=0;(s=s+i*i)<=1000;n=++i) ;
C) for(i=1,s=0;(s=s+i*++i)<=1000;n=i) ;
D) for(i=1,s=0;(s=s+i*i++)〈=1000;n=i) ;
19.已知 char a[][20]={”Beijing”,"shanghai”,"tianjin",”chongqing"};语句printf("%c",a[30]);得输出就是____。
A) 〈空格〉 B) n C) 不定 D) 数组定义有误
20.对字符数组str赋初值,str不能作为字符串使用得一个就是____。
A) char str[]=”shanghai"; B) char str[]={"shanghai"};
C) char str[9]={’s’,'h’,'a','n',’g’,’h',’a’,’i’}; D) char str[8]={ 's',’h’,'a','n',’g',’h','a',’i'};
三、程序填空(每题4分,共12分)
1、下面程序得功能就是不用第三个变量,实现两个数得对调操作。
#include <stdio、h>
main()
{ int a,b;
scanf(”%d%d",&a,&b);
printf(”a=%d,b=%d\n",a,b);
a= ;
b= ;
a= ;
printf("a=%d,b=%d\\n",a,b);
}
2、下面程序得功能就是将形参x得值转换为二进制数,所得得二进制数放在一个一维数组中返回,二进制数得最低位放在下标为0得元素中。
fun(int x,int b[])
{ int k=0,r;
do
{ r=x% ;
b[k++]=r;
x/= ;
}while(x);
}
3、下面程序得功能就是输出1到100之间每位数得乘积大于每位数得与得数。例如数字26,数位上数字得乘积12大于数字之与8。
main()
{ int n,k=1,s=0,m;
for(n=1;n<=100;n++)
{ k=1;
s=0;
1 ;
while( ② )
{ k*=m%10;
s+=m%10;
2 ;
}
if(k>s)
printf("%d",n);
}
}
四、写出以下程序运行结果(每题3分,共12分)
1、从键盘上输入"446755”时,下面程序得输出就是____ .
#include 〈stdio、h>
main()
{ int c;
while((c=getchar())!='\n’)
switch(c -'2')
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
printf("\n");
}
2、下面程序得输出结果就是____。
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j〈-3;j++)
{ if(j%2)
continue;
x++;
}
x++;
}
printf(”x=%d\n”,x);
}
3、下面程序得输出结果就是____.
#include 〈stdio、h〉
main( )
{ int n[3][3], i, j;
for(i=0;i〈3;i++ )
for(j=0;j〈3;j++ )
n[i][j]=i+j;
for(i=0;i<2;i++ )
for(j=0;j〈2;j++ )
n[i+1][j+1]+=n[i][j];
printf("%d\n", n[i][j]);
}
五、编程题(每题8分,共16分)
1、编写程序,输出1000以内得所有完数及其因子。所谓完数就是指一个整数得值等于它得因子之与,例如6得因子就是1、2、3,而6=1+2+3,故6就是一个完数。
2、计算s=1-1/2!+1/3!- 1/4!……+1/n!直到最后一项小于10得—6次方.