计算机类二级C

2006年4月全国计算机等级考试二级C语言笔试试卷

66 题含答案C
共 66 题返回本类
1单选题1 / 66
下列选项中不属于结构化程序设计方法的是
查看答案
D. 可复用
2单选题2 / 66
两个或两个以上模块之间关联的紧密程度称为
查看答案
A. 耦合度
3单选题3 / 66
下列叙述中正确的是
查看答案
D. 以上三种说法都不对
5单选题5 / 66
下列叙述中正确的是
查看答案
A. 线性链表是线性表的链式存储结构
8单选题8 / 66
“商品”与“顾客”两个实体集之间的联系一般是
查看答案
D. 多对多
10单选题10 / 66
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是
查看答案
C. DBS包含DB和DBMS
15单选题15 / 66
以下能正确定义字符串的语句是
查看答案
D. char str[]="\0";
16单选题16 / 66
以下数组定义中错误的是
查看答案
B. int x[2][3]={{l,2},{3,4},{5,6}};
17单选题17 / 66
若要求从键盘读入含有空格字符的字符串,应使用函数
查看答案
B. gets()
18单选题18 / 66
以下四个程序中,完全正确的是
查看答案
B. #include <stdio.h>
main();main()
{/*programming*/{/*/ programming /*/
printf("programming!\n");} printf("programming!\n");}
19单选题19 / 66
若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是
查看答案
C. switch(a+b)
20单选题20 / 66
若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是
查看答案
A. main()
21单选题21 / 66
在以下给出的表达式中,与while(    )中的(E)不等价的表达式是
查看答案
C. (E==0)
22单选题22 / 66
要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
查看答案
A. while((ch=getchar())!=′N′)printf("%c",ch);
23单选题23 / 66
已定义以下函数
int fun(int *p)
{return *p;)
fun函数返回值是
查看答案
B. 一个整数
24单选题24 / 66
若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
查看答案
D. p=&a;  scanf("%1f",p);
25单选题25 / 66
现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个结点。
struct node
{char data;
struct node  *next; 
}*p,*q,*r;
  
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是
查看答案
D. r->next=q;p->next=r;q->next=r->next;
26单选题26 / 66
有以下程序段
struct st
{int  x;int  *y;)*pt;
int a[]={l,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是
查看答案
C. ++pt->x
27单选题27 / 66
设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为
查看答案
B. 非0值
29单选题29 / 66
有以下程序
#include <stdio.h>
main()
{char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();  c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
查看答案
D. 1245
30单选题30 / 66
有以下程序
main()
{int  y=10;
while(y--);printf("y=%d\n",y);
}
程序执行后的输出结果是
查看答案
B. y=-1
31单选题31 / 66
有以下程序
main()
{int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else  d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出
查看答案
D. 编译有错
32单选题32 / 66
有以下程序
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);
}
程序执行后的输出结果是
查看答案
B. x=8
33单选题33 / 66
有以下程序
int fun1(double a){return a*=a;}
int fun2(double x,double y)
{double a=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{double w;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是
查看答案
C. 5.0
34单选题34 / 66
有以下程序
main()
{int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf("%d",t[2-i][i]);
}
程序执行后的输出结果是
查看答案
B. 3 5 7
35单选题35 / 66
有以下程序
fun(char p[][10])
{int n=0,i;
for(i=0;i<7;i++)
if(p[i][0]==′T′)n++;
return n;
}
main()
{char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("%d\n",fun(str));
}
程序执行后的输出结果是
查看答案
B. 2
36单选题36 / 66
有以下程序
main()
{int i,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是
查看答案
C. 25
37单选题37 / 66
有以下程序
void fun1(char *p)
{char *q;
q=p;
while(*q!=′\0′)
{  (*q)++;  q++;  )
}
main()
{char a[]={"Program"), *p;
p=&a[3];fun1(p);printf("%s\n",a);
}
程序执行后的输出结果是
查看答案
A. Prohsbn
38单选题38 / 66
有以下程序
void swap(char *x,char *y)
{char t;
t=*x;  *x=*y;  *y=t;
}
main()
{char *s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是
查看答案
C. 1bc,a23
39单选题39 / 66
有以下程序
int fun(int n)
{if(n==1)return 1;
else
return(n+fun(n-1));
}
main()
{int  x;
scanf("%d",&x); x=fun(x);printf("%d\n",x);
}
执行程序时,给变量X输入10,程序的输出结果是
查看答案
A. 55
40单选题40 / 66
有以下程序
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;i<n;i++)  sum+=x[i];
return  sum;
}
main()
{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序执行后的输出结果是
查看答案
C. 60
41单选题41 / 66
有以下程序
main()
{union
{char ch[2];
int d;
}s;
s.d=0x4321;
printf("%x,%x\n",s.ch[0],s.ch[1]);
}
在16位编译系统上,程序执行后的输出结果是
查看答案
A. 21,43
42单选题42 / 66
有以下程序
main()
{char *p[]={"3697","2584"};
int i,j;long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!=′\0′)
{if((p[i][j]-′0′)%2)num=10*num+p[i][j]-′0′;
j+=2;
}
}
printf("%d\n",num);
}
程序执行后的输出结果是
查看答案
C. 39
43单选题43 / 66
执行以下程序后,test.txt文件的内容是(若文件能正常打开)
#include <stdio.h>
main()
{FILE *fp;
char *s1="Fortran",*s2="Basic";
if((fp=fopen("test.txt","wb”))==NULL)
{printf("Can′t open test.txt file\n");exit(1);}
fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/
fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/
fwrite(s2,5,1,fp);
fclose(fp);
}
查看答案
A. Basican
44单选题44 / 66
以下叙述中错误的是
查看答案
D. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
45单选题45 / 66
以下叙述中错误的是
查看答案
B. 算法正确的程序可以有零个输出
46单选题46 / 66
以下叙述中错误的是
查看答案
D. 函数形参的值也可以传回给对应的实参
47单选题47 / 66
设有以下定义和语句
char str[20]="Program",*p;
p=str;
则以下叙述中正确的是
查看答案
A. *p与str[0]的值相等
48单选题48 / 66
以下叙述中错误的是
查看答案
D. C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
49单选题49 / 66
以下叙述中正确的是
查看答案
B. 在C语言中,预处理命令行都以"#"开头
50单选题50 / 66
以下叙述中错误的是
查看答案
A. 可以通过typedef增加新的类型
54填空题54 / 66
程序测试分为静态分析和动态测试。其中__是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
查看答案
静态分析(静态测试)
55填空题55 / 66
数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为__。
查看答案
物理独立性
56填空题56 / 66
若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句__。
查看答案
printf("a=%d,b=%d",a,b);
57填空题57 / 66
以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{float a,b,c;
scanf("%f%f%f",&a,&b,&c);
if(__)printf("YES\n");/*a、b、c能构成三角形*/
else printf("NO\n");/*a、b、c不能构成三角形*/
}
查看答案
(a+b>c)&&(a+c>b)&&(b+c>a)
58填空题58 / 66
以下程序的输出结果是__ 。
main()
{int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++)  s+=a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
查看答案
30
59填空题59 / 66
当运行以下程序时,输入abcd,程序的输出结果是:__。
insert(char str[])
{int i;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]=′*′;i--;}
printf("%s\n",str);
}
main()
{char str[40];
scanf("%s",str);insert(str);
}
查看答案
a*b*c*d*
60填空题60 / 66
下面程序的运行结果是:__。
fun(int t[],int n)
{int  i,m;
if(n==1)return t[0];
else
if(n>=2){m=fun(t,n-1);  return m;  }
}
main()
{int a[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
查看答案
11
61填空题61 / 66
现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include <stdio.h>
#include "myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
void fun()
{char s[80],c;  int n=0;
while((c=getchar())!=′\n′) s[n++]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:__。
查看答案
!knahT
62填空题62 / 66
以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char *fun(char *str,char c)
{ int n=0;  char *p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!=′\0′)n++;
if(p[n]==′\0′) return NULL;
return(__);
}
查看答案
p+n
63填空题63 / 66
以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
main()
(int  i,j;
for(i=0;__;i++)
{j=i*10+6;
if(__)continue;
printf("%d",j);
}
}
查看答案
  1. i<10
  2. j%3!=0
64填空题64 / 66
以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空
int isprime(int a)
{int i;
for(i=2;i<=a/2;i++)
if(a%i==0)__;
__;
}
查看答案
  1. return 0
  2. return 1
65填空题65 / 66
以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
A B C D E
F G H I
J K L
M N
O
请填空完成该程序。
main()
{int i,j,n;  char ch=′A′;
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1; j<=n-i+1;j++)
{printf("%2c",ch);
__;
}
__;
}
}
else printf("n is too large!\n")
printf("\n");
}
查看答案
  1. ch++
  2. printf(“\n”);
66填空题66 / 66
以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。
  
#include <stdio.h>
typedef struct node/*链表结点结构*/
{char sub[3];
struct node  *next;
}Node;
Node fun(char s) /*建立链表*/
{……    }
void disp(Node *h)
{Node *p;
p=h->next;
while(__)
{printf("%s\n",P->sub);  p=__;  }
}
main()
{Node *hd;
hd=fun();disp(hd);printf("\n");
}
查看答案
  1. p!=NULL
  2. p->next
← 上一卷下一卷 →