当前位置:首页 > 2009年9月全国计算机等级考试二级笔试试卷
{int i;
for(i=1;i<=40;i++) {if(i++%5=0)
if (++i%8=0) printf(\
printf(\执行后的输出结果是________。 A)5 B)24 C)32 D)40
(24)以下选项中,值为1的表达式________。 A)1-\)1-\ C)\)\(25)有以下程序
fun(int x,int y){return(x+y);} main()
{int a=1,b=2,c=3,sum; sum=fun((a++,b++b,a+b),c++); printf(\执行后的输出结果是________。
A)6 B)7 C)8 D)9 (26)有以下程序 main()
{ char s[ ]= \,s[0]); }
执行后的结果是________。 A)输出字符a的ASCII码 B)输出字符c的ASCII码 C)输出字符c D)程序出错
(27)有以下程序 fun(int x,int y)
{static int m=0,i=2; i+=m+1;m=i+x+y; return m; } main()
{int j=1,m=I,k;
k=fun(j,m); printf(\ k=fun(j,m); printf(\执行后的输出结果是________。 A)5,5 B)5,11 C)11,11 D)11,5 (28)有以下程序fun(int x) {int p;
if(x==0║x= =1) return(3); p=x-fun(x=2); retum p; }main()
{ prinf(\执行后的输出结果是________。A)7 B)3 C)3 D)0
(29)在16位编译系统上,右有定义int a[ ]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是________。
A)p向高地址移了一个字节 B)p抽高地址移了一个存储单元C)p向高地址移了两个字节 D)p与a+1等价
(30)有以下程序 main()
{int a=1,b=3,c=5;
int *p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); printf(\ }执行后的输出结果是 A)1 B)2 C)3 D)4
(31)若有定义:int w[3][5];,则以下不能正确表示该数组元素的表达式是________。 A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)
(32)若有以下函数首部int fun(double x[10],int *n) 则下面针对此函数声母语句中正确的是________。 A)int fun(double x,int *n); B)int fun(double ,int);C)int fun(double*x,int n); D)int fun(double *,int*); (33)若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是________。 A)pk=k; B)pk[0]=&k[1][2]; C)pk=k[0]; D)pk[1]=k; (34)有以下程序
void change(int k[ ]){k[0]=k[5];} main()
{int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while(n<=4) {change(&x[n]);n++;} for(n=0;n<5;n++) printf(\ } 程序运行后输出的结果是________。A)678910 B)13579 C)12345 D)62345 (35)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是 A)#define N 10 Int a[N] B)#define n 5 Int a[2*n] C)int a[5+5] D)int n=10,a[n] (36)有以下程序
main() {int x[3][2]={0},I;
for(I=0;I<3;I++) scanf(\ printf(\若运行时输入:246<回车>,则输出结果为________。A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6 (37)有以下程序 main()
{char s[ ]={ \
ps=s; printf(\程序运行后的输出结果是________。 A)a B)e C)u D)元素s[4]的地址
(38)以下语句中存在语法错误的是________。 A)char ss[6][20];ss[1]= \ B)char ss[][20]={ \)char *ss[6];ss[1]= \ D)char *ss[]={\(39)若有定义:char *x= “abcdefghi”;,以下选项中正确运用了strepy函数的是________。 A)char y[10]; strcpy(y,x[4]); B)char y[10]; strcpy(++y,&x[1]);
C)char y[10],*s; strcpy(s=y+5,x);D)char y[10],*s; strcpy(s=y+1,x+1); (40)有以下程序
int add(int a,int b){return+b};} main()
{int k,(*f)(),a=5,b=10; f=add;
… }则以下函数调用语句错误的是________。A)k=(*f)(a,b); B)k=add(a,b);C)k=*f(a,b); D)k=f(a,b); (41)有以下程序#include
while(i printf(“%d\\n”,n); }该程序生成的可执行文件名为:proc.exe。若运行时输入命令行: proc 123 45 67 则程序的输出结果是________。A)3 B)5 C)7 D)11 (42)有以下程序 void fun2(char a, char b){printi(“%b%c”,a,b);} char a= ?A?,b= ?B?; void fun1( ){ a= ?C?l b= ?D?; } main( ) { fun1( ) printf( “%c%c”,a,b);fun2(?E?, ?F?); } 程序的运行结果是________。A)CDEF B)ABEF C)ABCD D)CDAB (43)有以下程序 #include {int i1,i2; i1=f(2); i2=f(1+1); printf(“%d %d\\n”,i1,i2); } 程序的运行结果是________。 A)12 12 B)11 7 C)11 11 D)12 7 (44)设有以下语句 typedef struct TT{char c; int a[4];}CIN; 则下面叙述中正确的是________。 A)可以用TT定义结构体变量 B)TT是struct类型的变量C)可以用CIN定义结构体变量 D)CIN是struct TT类型的变量 (45)有以下结构体说明、变量定义和赋值语句 struct STD {char name[10]; int age; char sex; }s[5],*ps; ps=&s[0];} 则以下scanf函数调用语句中错误引用结构体变量成员的是________。 A)scanf(“%s”,s[0].name); B)scanf(“%d”,&s[0].age); C)scanf(“%c”,&(ps>sex)); D)scanf(“%d”,ps>age); (46)若有以下定义和语句 union data{ int i; char c; float f;x; int y;} 则以下语句正确的是________。 A)x=10.5; B)x.c=101; C)y=x; D)printf(“%d\\n”,x); 47)程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。 data next a b c NULL 若有以下程序段 q=s; s=s>next; p=s; while(p->next) p=p->next; p->next=q; q->next=NULL;该程序段实现的功能是________。 A)首结点成为尾结点 B)尾结点成为首结点 C)删除首结点 D)删除尾结点 (48)若变量已正确定义,则以下语句的输出结果是________。 s=32; s^=32;printf(“%d”,s); A)-1 B)0 C)1 D)32 (49)以下叙述中正确的是________。A)C语言中的文件是流式文件,因此只能顺序存取数据 B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据 D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 (50)有以下程序 #include {FILE *fp; int i; char ch[]=”abcd”,t; fp=fopen(“abc.dat”,”wb+”); for(i=0;i<4;i++)fwriter&ch[],1,1fp; fseek(fp,-2L,SEEK_END); fread(&t,1,1,fp); fclose(fp); printf(“%c\\n”,t); }程序执行后的输出结果是________。 A)d B)c C)b D)a 二、填空题(每空2分,共40分) ********(1)下列软件系统结构图的宽度为 【1】 。 (2) 【2】 的任务是诊断和改正程序中的错误。 (3)一个关系表的行称为 【3】 。 (4)按“先进后出”原则组织数据的数据结构是 【4】 。 (5)数据结构分为线性结构和非线性结构,带链的队列属于 【5】 。 (6)设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【6】 。printf(\ (7)以下程序运行后的输出结果是 【7】 。 main() { int m=011,n=11;printf(\ %d\\n\(8)以下程序运行后的输出结果是 【8】 。 main() { int x,a=1,b=2,c=3,d=4; x=(ax)?x:d; printf(\ 9)有以下程序,若运行时从键盘输入:18,11<回车>,则程序输出结果是 【9】 。 main() { int a,b; printf(\ while(a!=b) { while(a>b) a-=b; while(b>a) b-=a; } printf(\ynexam.cn[云南考试网] } (10)以下程序的功能是:将输入的正整数按逆序输出。例如,若输入135,则输出531。请填空。 #include {int n,s;printf(\ scanf(\ do { s=n; printf(\ 【10】 ;} while(n!=0); printf(\ } 11)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算: y1=(x+8)2-2(x+8)+6 y2=sin2(x)-2sin(x)+6 请填空。 #include \ double fun(double x) { return(x*x-2*x+6); } main() { double x,y1,y2; printf(\ scanf(\ y1=fun( 【11】 ); y2=fun( 【12】 ); printf(\ (12)下面程序的功能是:将N行N列二维数组中每一行的元素进行排列,第0行从小到大排序,第1 行从大到小排 序,第2行从小到大排序,第3行从大到小排序。例如: #define N 4 Void sort (int a[][N]) {int i,j,k,t; for (i=0;i for(k=【13】;k void outarr(int a[N][N]) {...........} main() {int aa[N][N]={{2,3,4,1}{8,6,5,7}{11,12,10,9}{15,14,16,13}}; outarr(aa);/*以矩阵的形式输出二维数组*/ sort(aa);outarr(aa);} (13)下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中, 合并形成 一个新的字符串。例如,若t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。请填空。 #include void strcpy2(char *s,char *t) { char *p=t; while(*s++=*t++); s= 【15】 ; while( 【16】 =*p++);} main() { char str1[100]=\ strcpy2(str1 ,str2); printf(\(14)下面程序的运行结果是 【17】 。 #include return a[0]+f(a+1,n-1); else return a[0];} main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},s; s=f(aa+2,4); printf(\ (15)下面程序由两个源文件t4.h和t4.c组成,程序编译运行的结果是 【18】 。t4.h的源程序为: #define N 10 #define f2(x) (x*N) t4.c的源程序为: #include {int i,j; i=f(1+1); j=f2(1+1); printf(\ } (16)下面程序的功能是建立一个有3个节点的单向循环链表,然后求各个节点数值域data中数据的和请 填空。 #include {struct NODE *p,*q,*r; int sum=0;p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p->data=100; q->data=200; r->data=200; p->data=q; q->data=r; r->data=p; m=p->data+p->next->data+r->next->data 【19】 ; printf(\ } (17)有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入另一个数组b中,并打印输出,请填空。
共分享92篇相关文档