资源描述
说明: 请考生将答案写在“武汉大学答题纸”上并标明题号,否则不得分。试卷中C语言程序得开发环境就是VC 6。
一、选择题(共20小题,每小题2分,共40分)
1、 以下正确得C语言自定义标识符就是______。
A) _1a B) 2a_ C) do D) a、12
2、 温度华氏与摄氏得关系就是: C=(F32)。已知:float C,F;由华氏求摄氏得正确计算得表达式就是____。
A) C=5/9(F32) B) C=5*(F32)/9
C) C=5/9*(F32) D) 三个表达式都正确
3、 设float x,由键盘输入:12、45, 能正确读入数据得输入语句就是_________。
A) scanf("%5、2f",&x) B) scanf("%d",&x);
C) scanf("%f",&x); D) scanf("%f",x);
4、 一个C程序得执行就是从( )
A) main函数开始,直到main函数结束
B) 第一个函数开始,直到最后一个函数结束
C) 第一个语句开始,直到最后一个语句结束
D) main函数开始,直到最后一个函数结束
5、 判断char型变量c1就是否为数字得正确表达式为 ________。
A) 0<=c1<=9 B) c1>=0 &&c1<=9
C) ‘0’<=c1<=’9’ D) c1>='0'&&c1<='9'
6、 switch(表达式)语句中得“表达式”,允许得类型就是_________。
A) float, int B) float, int, char
C) int, char D) char, double
7、 设int i,j, x=0;
for(i=5;i;i)
for(j=0;j<4;j++)
x++;
则循环体结束后,x得值为________。
A) 5 B) 20
C) 25 D) 死循环
8、 设x与y均为int型变量,则执行下面得循环后,y值为_________。
for(y=1,x=1;y<=50;y++)
{
if(x>=10)break;
if (x%2==1)
{
x+=5;
continue;
}
x=3;
}
A) 5 B) 6
C) 50 D) 51
9、 设有数组定义:int a[5];则下列给数组元素赋值错误得就是________、
A) a[3]=93;
B) scanf("%c",a[3]);
C) a[3]=a[0]+a[1];
D) a[3]='a'+3;
10、 若用数组名作为函数调用时得实参,则实际上传递给形参得就是________ 。
A) 数组首地址 B) 数组得第一个元素值
C) 数组中全部元素得值 D) 数组元素得个数
11、 int a[2][3]={{1},{2,3}};,则a[1][1]得值就是_________。
A) 0 B) 1
C) 2 D) 3
12、 若定义数组并初始化int b[10]={ 1,2,3,4},以下说法错误得就是________
A)b[8]得值为0
B)b[1]得值为1
C)b[3]得值为整数
D)b[10]不就是b数组中得元素
13、 若已定义得函数有返回值,则以下关于该函数调用得叙述中错误得就是_________。
A)函数调用可以作为独立得语句存在
B)函数调用可以作为一个函数得实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数得形参
14、 在C语言中,下列错误得说法就是_______。
A) 函数可以递归调用
B) 不允许在函数定义中再定义函数
C) 递归程序不可能用非递归算法实现
D) 对于continue语句,可以通过改变程序得结构而不使用它
15、 在一个源文件中定义得全局变量得作用域为( )。
A)本文件得全部范围。 B)本程序得全部范围。
C)本函数得全部范围。 D)从定义该变量得位置开始至本文件结束
16、 有以下程序
void main
{
int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)
printf("%d",t[2i][i]);
}
程序执行后得输出结果就是______。
A)753 B)357
C)369 D)751
17、若有说明float *p,m=3、14;则能正确表示p指向m得赋值语句就是________。
A) p=m; B) p=&m; C) *p=m; D) *p=&m;
18、 若有下列定义:int a[5],*p=a; 则能正确表示a数组某个元素地址得就是______。
A) &a B) p+2
C) a++ D) &a[5]
19、 若有以下说明,则*(a+a[3])得值为__________。
int a[10]={ 9,1,8,2,7,3,6,4,5,0};
A)1 B) 2 C) 8 D) 11
20、 C语言中,函数返回值得类型就是由______决定得。
A) 调用函数时动态决定得 B) return语句中得表达式类型
C) 调用该函数得主调函数类型 D) 定义函数时,所指定得函数类型
二、填空题(共7小题10空,每空2分,共20分)
1、已知int x=5,y=1,z=2;执行语句x%=y+z;后,x得值就是___(1)___。
2、设int a[3][4]={{1,2,3,4},{5,6,7},{8,9}};则表达式a[1][2]+a[2][3]得值就是____(2)____。
3、 学生成绩得字每等级与分数范围如下:
字母等级 分数范圈
A 90~100
B 80~89
C 70~79
D 60~69
E 0~59
其它字母 输入错误
下列程序输入字母等级之后,输出相应得分数范围。
#include <stdio、h>
void main
{
char score;
scanf("%c",&score);
switch(____(3)______)
{
case 'A': printf("A:90~100\n"); break;;
case 'B': printf("B:80~89\n");break;
case 'C': printf("C:70~79\n");break;
case 'D': printf("D:60~69\n");break;
case 'E': printf("E:0~59\n");break;
____(4)____: printf("输入错误\n");
}
}
4、 设x为int型变量,请写出一个关系表达式____(5)____,用以判断x能同时被3与5整除时,关系表达式得值为真。
5、 对含有10个元素得数组a先按元素得存储次序倒序输入,再按其正序输出。
#include <stdio、h>
#define N 10
void main
{
int i,a[N];
for(i=N1;___(6)___;i)
scanf("%d",&a[i]);
for(i=0;i<N;i++) printf("%d\t",a[i]);
printf("\n");
}
6、 下面程序得功能就是显示具有N个元素得数组s中得最大元素。
#define N 20
int fmax(int s[],int n)
{ int k=s[0],i;
for(i=1;i<n;i++)
if (____(7)_____) k=s[i] ;
return(k);
}
void main
{ int i,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("%d\n", ____(8)_____ ); //调用函数fmax
}
7、 若有 int a[5]={10,20,30,40,50}, *p=a,*s=a+2;
则表达式sp得值就是____(9)_____,*s*p得值就是___(10)______。
三、程序阅读,写出下列程序得运行结果(共10小题,每小题2分,共20分)
(下列程序均包括 #include"stdio、h")
1、 void main
{ int x,y;
scanf(“%d,%d”,&x,&y);
if (x>20||x<10)
if(y<=100&&y>x)
printf("Good");
else
printf("Bad");
}
如果输入30,150, 输出为( )
2、 main
{ int a=0,i;
for(i=0;i<4;i++)
{ switch(i)
{ case 0:
case 1:a++;
case 2:a+=2;
default:a+=3;
}
}
printf("%d\n",a);
}
3、 void main
{ int x,y;
scanf("%d",&x);
do{
y=x%10;
printf("%d",y);
x/=10;
} while(x);
}
输入整数12345
4、 void main
{ int i=5;
for ( ;i<15; )
{ i++;
if (i%3==0||i%2==0) continue;
printf("%d ",i);
}
}
5、 void main
{ int a=14, b=63;
while (a!=b)
{while (a>b) a=b;
while (a<b) b=a;
}
printf ("%d\n",a);
}
6、 void main
{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("s=%d",s);
}
7、 int f(int x)
{return x+3;}
void main
{int a=1;
while(f(a)<10)
a++;
printf(“a=%d\n”,a)
}
8、 int f(int b[],int n)
{ int i,r=1;
for(i=0;i<=n;i++) r=r*b[i];
return r;
}
void main
{ int x,a[]={1,2,3,4,5,6};
x=f(a,3);
printf("%d\n",x);
}
9、 funa(int a)
{ int b=1;
static int c=1;
a+=c+b;
b++;c++;
return(a);
}
void main
{ int i,k=0;
for(i=1;i<3;i++)
k+=funa(i);
printf("%d\n",k);
}
10、 void main
{
int a[]={1,2,3,4,5},*p;
p=a; (*(p+1))++;
printf("%d,%d\n",*p,*(p+1));
}
四、编程题(共2小题,每小题10分,共20分)
1、 请编写程序计算并输出n(包括n)以内能被3或5整除得所有自然数得倒数之与,n从键盘输入值。
2、 请编写函数int primesum(int x[],int n)求一组数x[]中所有质数得与, n为这组数得个数,在主函数中输入数据并调用该函数。
展开阅读全文