资源描述
(完整版)江苏省五年一贯制专转本《C语言程序设计》模拟试卷三(晓庄)
江苏省五年一贯制专转本
《C语言程序设计》模拟试卷三(晓庄)
一、 填空題(每题2分,共20分)
1、一个C语言程序的开发过程包括:编辑、 ,连接和运行4个步骤.
2、设int x=9,y=8;表达式x==y+1的结果是 。
3、若a=3,b=4,c=5,则表达式a ||( b=c)&&b==c的值是 。
4、执行下面程序段后,k值是_______________.
k=1;n=263;
do{k*=n%10; n/=10 } while(n);
5、以下程序输入123456<CR>后的执行结果是 。
#include〈stdio。h〉
main()
{int a,b;
scanf(”%2d%3d”,&a,&b);
printf("a=%d,b=%d\n”,a,b);
}
6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z"的表达式是:
。
7、.以下程序的运行结果是 。
main ()
{ if(2*2= =5<2*2= =4)
printf (“T”);
else
printf (“F");
}
8、设有程序片断:
switch (grade)
{ case ‘A’ : printf(“85-100\n”);
case ‘B’ : printf(“70—84n”);
case ‘C' : printf(“60—69\n”);
case ‘D' : printf(“〈60\n”);
default : printf(“error! \n”);
}
若grade的值为’C',则输出结果是 。
9、下面程序的运行结果是_________。
#include <stdio。h〉
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;
① ;
while( ② )
{ k*=m%10;
s+=m%10;
② ;
}
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次方。
7
展开阅读全文