2006年4月-2012年9月全国计算机等级考试二级C语言笔试真题及答案(打印版)
38、有以下函数
#include <sthio.h> struct stu
{int mun; char name[10]; int age;};
33、有以下函数 void fun(double a[], int *n)
#include <sthio.h> { }
void func(int n) 以下叙述中正确的是
{int i; A、调用fun函数时只有数组执行按值传
for(i=0;i<=n;i++) printf(“*”); 送,其他实参和形参之间执行按地址传送
B、形参a和n都是指针变量
C、形参a是一个数组名,n是指针变量
D、调用fun函数时将把double型实参数
组元素一一对应地传送给形参a数组
27、有以下程序
#include <sthio.h>
main()
{int a,b,k,m,*p1,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*p1-m; b=*p1+*p2+6;
printf(“%d ”,a);
printf(“%d\n”,b);
}
编译时编译器提示错误信息,你认为出错
的语句是
A、a=/*p1-m B、b=*p1+*p2+6
C、k=1,m=8; D、p1=&k,p2=&m;
28、以下选项中有语法错误的是
A char *str[ ]={“guest”}; B、char str[10 ]={“guest”};
C、char *str[3] *str[1]={“guest”};
D、char
str[3][10];str[1]={“guest”};
29、avg函数的功能是求整型数组中的前
若干个元素的平均值,设数组元素个数最
多不超过10,则下列函数说明语句错误的
是
A、int avg(int *a,int n);
B、int avg(int a[10],int n);
C、int avg(int a,int n) ;
D、int avg(int a[],int n);
30、有以下函数
#include <sthio.h>
#include <string.h>
main(){ printf(“%d\n”,strren”ATS
\n012\1”) );}
程序运行后的输出结果是
A 3 B 8 C 4 D 9
31、有以下函数
#include <sthio.h>
main()
{ char a[20],b[20],c[20];
scanf(”%s%s”,a,b);
get(c);
printf(”%s%s\n”,a,b,c);
}
程序运行时从第一行开始输入 this is a
cat!<回车>,则输出结果是
A thisisacat! B this is a
C thisis a cat! D thisisa cat!
32、有以下函数
#include <sthio.h>
void fun(char c)
{if(c>’x’) fun(c-1);
printf (“%c”,c);
}
main()
{fun”z”;}
程序运行输出结果是
A xyz B wxyz C zyxw D zyx
printf(“#”); main() { func(3); printf(“????”); func(4); printf(“\n”); } 程序运行输出结果是 A ****#????***# B ***#????*****# C **#????*****# D ****#????*****# 34、有以下函数 #include <sthio.h> void fun(int *s) {staic int j=0; do {s[j]=s[j]+s[j+1];} wihle(++j<2); } main() {int k,a[10]={1,2,3,4,5}; for(K+1;k<3;k++) fun(a); for(K+1;k<5;k++) printf(“%d”,a[k]);
printf(“\n”); } 程序运行输出结果是 A 12345 B 23445 C 34756 D 35745 35、有以下函数 #include <sthio.h> #define S(x) (x)*x*2 main() {int k=5,j=2; printf(“%d,”,S[k+j]); printf(“%d\n”,S(k-j))); } 程序运行输出结果是 A 98,18 B 39,11 C39,18 D 98,11 36、有以下函数 #include <sthio.h> void exch(int t[ ]) {t[0]=t[5];} {int x[10]={1,2,3,4,5,6,7,8,9,10},i=0; while(i<=4) {exch(&x[i])’i++;} for(i=0;i<5;i++) printf(“%d”,x[i]); printf(“\n”); } 程序运行输出结果是 A 2 4 6 8 10 B 1 3 5 7 9 C 1 2 3 4 5 D 6 7 8 9 10 37、设有以下程序段 Struct MP3 {char name[20]; char color; float price; }std,*ptr; ptr=& std; 若要引用结构体变量std中的color成员,写法错误的是 A std.color B ptr-> color C std-> color D (*ptr) .color

void fun(struct stu *p)
{ printf(“%s\n”,p->name);} mian()
{ struct stu
x[3]={{01,”zhang”,20},{02,”wang”,19},{03,”zhao”,18}}; fun(x+2); }
程序运行输出结果是
A zhang B zhao C wang D 19 39、有以下函数
#include <sthio.h> mian()
{int a=12,c; c=(a<<2)<<1;
printf(“%d\n”,c): }
程序运行输出结果是
A 3 B 50 C 2 D 96 40、以下函数不能用于向文件写入数据的是
A ftell B fwrite C fputc D fprintf 二、填空题
1、将长度为n的顺序存储在线性表中删除一个元素,最坏情况下需要移动表中的元素个数为( )。 2、设循环队列的存储空间为Q(1:3),初始状态为front=rear=30。现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有( )个元素。 3、数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是( )。 4、在将E-R图转换到关系模式时,实体和联系都可以表示成( )。
5、常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于( )。
6、设变量a和b已定义为int类型,若要通过scanf(”a=%d,b=%d”,&a,&b);语句分别给a和b输入1和2,则正确的数据输入内容是( )。
7、以下程序的输出结果是( )。 #include <sthio.h> mian()
{ int a=37;
a+=a%=9; printf(“%d\n”,a); }
8、设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行c=a++||b++;语句后,变量b的值是( ). 9、有以下程序段 s=1.0;
for(k=1,k<=n;k++) s=s+1.0(k*(k+1)); printf(“%f\n”,s);
请填空,使以下程序段的功能与上面的程序段完全相同。 s=1.0; k=1; while( )
{ s=s+1.0(k*(k+1)); k=k+1;}


