计算机二级c试卷-2005
(46)有以下程序 # include struct STU { int num; float TotalScore; }; void f(struct STU p) { struct STU s[2]={{20044,550},{20045,537}}; p.num = s[1].num; p.TotalScore = s[1].TotalScore; } main() { struct STU s[2]={{20041,703},{20042,580}}; f(s[0]); printf("%d %3.0f\n", s[0].num, s[0].TotalScore); } 程序运行后的输出结果是 A)20045 537 B)20044 550 C)20042 580 D)20041 703 (47)有以下程序 # include struct STU { char name[10]; int num; }; void f(char *name, int num) { struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}; num = s[0].num; strcpy(name, s[0].name); } main() { struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1]; f(p->name, p->num); printf("%s %d\n", p->name, p->num); } 程序运行后的输出结果是 A)SunDan 20042 B)SunDan 20044 C)LiSiGuo 20042 D)YangSan 20041 (48)有以下程序 struct STU { char name[10]; int num; float TotalScore; }; void f(struct STU *p) { struct STU s[2]={{"SunDan",20044,550},{"Penghua",20045,537}}, *q=s; ++p ; ++q; *p=*q; } main() { struct STU s[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}}; f(s); printf("%s %d %3.0f\n", s[1].name, s[1].num, s[1].TotalScore); } 程序运行后的输出结果是 A)SunDan 20044 550 B)Penghua 20045 537 C)LiSiGuo 20042 580 D)SunDan 20041 703 (49)以下程序的功能是进行位运算 main() { unsigned char a, b; a=7^3; b= ~4 & 3; printf("%d %d\n",a,b); } 程序运行后的输出结果是 A)4 3 B)7 3 C)7 0 D)4 0 (50)有以下程序 #include main() { FILE *fp; int i, k, n; fp=fopen("data.dat", "w+"); for(i=1; i<6; i++) { fprintf(fp,"%d ",i); if(i%3==0) fprintf(fp,"\n"); } rewind(fp); fscanf(fp, "%d%d", &k, &n); printf("%d %d\n", k, n); fclose(fp); } 程序运行后的输出结果是 A)0 0 B)123 45 C)1 4 D)1 2 二、填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。 (1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 【1】 。 (2)算法复杂度主要包括时间复杂度和 【2】 复杂度。 (3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 【3】 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 (4)一棵二叉树第六层(根结点为第一层)的结点数最多为 【4】 个。 (5)数据结构分为逻辑结构和存储结构,循环队列属于 【5】 结构。 (6)以下程序运行后的输出结果是 【6】 。 main() { int x=0210; printf("%X\n",x); } (7)以下程序运行后的输出结果是 【7】 。 main() { int a=1,b=2,c=3; if(c=a) printf("%d\n",c); else printf("%d\n",b); } (8)已有定义:double *p;,请写出完整的语句,利用malloc函数使p指向一个双精度型 的动态存储单元 【8】 。 (9)以下程序运行后的输出结果是 【9】 。 main() { char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf("%d %f\n",n,x); } (10)以下程序的功能是计算:s=1+12+123+1234+12345。请填空。 main() { int t=0,s=0,i; for( i=1; i<=5; i++) { t=i+ 【10】 ; s=s+t; } printf("s=%d\n",s); } (11)已知字母A的ASCII码为65。以下程序运行后的输出结果是 【11】 。 main() { char a, b; a='A'+'5'-'3'; b=a+'6'-'2' ; printf("%d %c\n", a, b); } (12)有以下程序 int sub(int n) { return (n/10+n%10); } main() { int x,y; scanf("%d",&x); y=sub(sub(sub(x))); printf("%d\n",y); } 若运行时输入:1234<回车>,程序的输出结果是 【12】 。 (13)以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。 # include void sstrcat(char *s, char *t) { int n; n= strlen(s); while (*(s+n)= 【13】 ){s++; t++;} } (14)以下程序运行后的输出结果是 【14】 。 #include char *ss(char *s) { char *p, t; p=s+1; t=*s; while(*p) { *(p-1) = *p; p++;} *(p-1)=t; return s; } main() { char *p, str[10]="abcdefgh"; p = ss(str) ; printf("%s\n",p); } (15)以下程序运行后的输出结果是 【15】 。 int f(int a[], int n) { if (n >= 1) return f(a, n-1)+a[n-1]; else return 0; } main() { int aa[5]={1,2,3,4,5}, s; s=f(aa, 5); printf("%d\n", s); } (16)以下程序运行后的输出结果是 【16】 。 struct NODE { int num; struct NODE *next; } ; main() { struct NODE s[3]={{1, '\0'},{2, '\0'},{3, '\0'}}, *p, *q, *r; int sum=0; s[0].next=s+1; s[1].next=s+2; s[2].next=s; p=s; q=p->next; r=q->next; sum+=q->next->num; sum+=r->next->next->num; printf("%d\n", sum); } (17)以下程序的功能是输出如下形式的方阵: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 请填空。 main() { int i,j,x; for(j=4; j 【17】 ; j--) { for(i=1; i<=4; i++) { x=(j-1)*4 + 【18】 ; printf("%4d",x); } printf("\n"); } } (18)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。 # define N 4 void rotate(int a[][N], int b[][N]) { int i, j; for (i=0; i { b[i][N-1] = 【19】 ; 【20】 = a[N-1][i]; } }
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
|