计算机二级C语言考试试题精选题库(含答案解析)

考试难度:
5人已考
  • 卷面总分:100
  • 试卷类型:模拟试题
  • 测试费用: 免费
  • 关注人数:107
  • 作答时间:120分钟
  • 解析:
关闭
试卷简介:
计算机二级C语言考试试题精选题库(含答案解析)
试题类型:
  • 程序填空题
  • 程序修改题
  • 程序设计题
试卷预览
  • 程序填空题
  • 程序修改题
  • 程序设计题
1
使用VC++2010打开考生件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是将N×N矩阵中的元素按列向右移动1个位置,右边被移出矩阵的元素绕回左边第1列。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#define N 4void fun(int ( * t)[n]){int i,j,x;for (i=0 ; i<【1】; i + + ){x=t[i] [【2】];for (j=N -1; j >0; j --)t[i][j]=t[i][ j-1];t[i][【3】]=x;}}main (){int i, j, t[ ] [N]={21,12,13,24,25,16,47,38,29,11,32,54, 42,21,33,10};printf (“The original array:\n”);for (i=0;i
2
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是统计形参s所指的字符串中数字字符出现 的次数,并将结果存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为“abcdef35adgh3kjsdf7”, 则输出结果为4。请在程序的下划线处填入正确内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>void fun (char *s, int *t){int i, n;n=0 ;/******** found ******** /for (i=0;【1】!=0; i ++ )/******** found ******** /if (s[i] >=‘0’&&s[i]<=【2】)n ++;/******** found ******** /【3】;}main(){char s [80]=“abcdef35adgh3kjsdf7”;int t;printf (“\nThe original string is: % s\n”, s);fun (s, &t);printf (“\ nThe result is: %d\n”, t);}
3
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。函数fun()的功能是将存放学生数据的结构体数组,按姓名的字典序(从小到大)排列。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <string.h>struct student {long sno;char name[10];float score[3];};void fun (struct student a[ ], int n){/********* found ********* /【1】 t;int i,j;/********* found ********* /for (i=0; i<【2】; i++)for (j=i +1; j0){t=a[i];a[i]=a[j];a[j]=t;}}main (){struct student s [4]={{10001,“ZhangSan”, 95, 80, 88},{10002,“LiSi”, 85, 70, 78 },{10003,“CaoKai”, 75, 60, 88}, {10004,“FangFang”, 90, 82, 87}};int i, j;printf (“\n\nThe original data: \n\n”);for(j=0; j<4; j++){printf (“\nNo: %Id Name: %-8sScores:”,s[j].sno, s[j].name);for (i=0; i<3; i++)printf(“%6.2f”, s[j].score[i]);printf (“\n”);}fun (s, 4);printf (“\n\nThe data after sorting : \n\n”);for (j=0; j<4; j++){printf(“\nNo: %Id Name: %-8sScores:”,s[j].sno, s[j].name);for (i=0; i<3; i++)printf (“%6.2f”, s[j].score[i]);printf (“\n”);}}
4
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是判断形参s所指字符串是否是回文(palindrome),若是,函数返回值为1;若不是,函数返回值为0。回文是正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL和Level是回文,而LEVLEV不是回文。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件blank1.c中。不得增行或删行,也不得更改程序的结构!试题程序:
5
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是将a所指3×5的矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。例如,有下列矩阵:123451234512345若k为2,程序执行结果为345123451234512请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件blank1.c中。不得增行或删行,也不得更改程序的结构!试题程序:
6
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是计算出形参s所指字符串中包含的单词个数,并将其作为函数值返回。为便于统计,规定各单词之间用空格隔开。例如,形参s所指的字符串为ThisisaClanguageprogram,函数的返回值为6。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件blank1.c中。不得增行或删行,也不得更改程序的结构!试题程序:
1
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是根据以下公式求π值,并将其作为函数值 返回。例如,当给指定精度的变量eps输入0. 0005时,应输出 Pi=3.140578。请改正程序中的错误,使它能得出正确的绵果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>#include <math.h>double fun(double eps){double s,t; int n=1;s=0.0 ;/********* found *********/t=0;while (t >eps){s +=t;t=t*n/(2*n+1);n++ ;}/********* found *********/return (s);}void main (){double x;printf (“\ nPlease enter a precision:”);scanf (“%lf”, &x);printf (“\nPi=%lf \n”, fun (x));}
2
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是将十进制正整数m转换成k(2<k<9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示应为1000)。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include/********found********/voidfun(intm,intk);{intaa[20],i;for(i=0;m;i++){/********found********/aa[i]=m/k;m/=k;}for(;i;i—)/********found********/printf("%d",aa[i]);}main(){intb,n;printf("\nPleaseenteranumberandabase:\n");scanf("%d%d"f&n,&b);fun(n,b);printf("\n");}
3
使用VC ++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是根据整型形参m,计算如下公式的值:例如,若m的值为5,则应输出1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>double fun (int m){double y=1.0;int i;/********* found**********/for (i=2 ; i< m; i + + )/********* found**********/y +=1/ (i * i);return(y);}main(){int n=5;printf(“\nThe result is%lf\n”,fun(n));}
4
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是从s所指字符串中,找出t所指字符串的个数,并将其作为函数值返回。如当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab” 时,函数返回整数3。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <stdlib. h>#include <conio.h>#include <stdio.h>#include <string. h>int fun(char *s, char *t){int n; char *p, *r;n=0;while (*s){p=s;r=t;while (*r)/********* found ********* /if(*r=*p) {r++;p++}else break;/********* found *********/if (r==‘0’)n++;s++;}return n;}void main (){chars [100], t[100]; int m;system(“CLS”);printf (“\nPlease enter string s:”);scanf(“%s”,s);printf(“\nPlease enter substring t:”);scanf (“%s”,t);m=fun(s, t);printf (“\nThe result is :m=%d\n”, m);}
5
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,fun()函数的功能是删除b所指数组中小于10的数据。在主函数中输出删除后数组中余下的数据。请改正函数fun()中指定部位的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中。不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
6
使用VC++2010打开考生文件夹回析下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c此程序给定函数中,函数fun()的功能是统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。例如,输入"THIsisaboot",则输出应是10220。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件modi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:1#include2#include3#include4/*********found*********/5fun(char*s,intnum[5])6{intk,i=5;7for(k=0;k8/*********found*********/9num[i]=0;10for(;*s;s++)11{i=-1;12/*********found*********/13switch(s)
1
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),该函数的功能是将大于整数m且紧靠m的k个素数存入所指的数组中。例如,若输入17、5,则应输出19、23、29、31、37。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
2
使用VC ++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数其功能是移动一维数组中的内容,若数组中有n个整数,要求把下标为0 ~ p(含p,p小于等于n- 1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为 5、6、7、8、9、10、1、2、3、4。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <stdio.h>#define N 80void fun (int *w, int p, int n){}main (){int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int i,p, n=15;printf (“The original data :\n”);for(i=0; i
3
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为13579299946999813570则函数值为61。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i
4
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1. c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <stdio.h>#include <conio.h>#include <stdlib.h>#define N 5void fun (int a[ ] [N] , int n){}main (){int a[N][N],n,i,j;printf (“*****The array*****\n”);for(i=0;i
5
使用VC ++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1. c。此程序定义了N×N的二 维数组,并在主函数中自动赋值。请编写函数fun(),该函数的功能是将数组下三角元素中的值全部置成0。如a数组中的值为注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <conio.h>#include <stdio.h>#include <stdlib.h>#define N 5void fun(int a[ ] [N]){}void main(){int a[N][N],i,j;system(“CLS”);printf (“****The array****\n”);for (i=0;i
6
使用VC ++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是实现B=A+ AT,即将矩阵A加上A 的转置,结果存放在矩阵B中。计算结果在main()函数中输出。举例如下。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <stdio.h>#include <conio.h>#include <stdlib.h>void fun (int a[3][3], int b[3][3]){}void main (){int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];int i, j;system(“CLS”);fun (a, t);for (i=0;i<3;i++){for(j=0;j<3;j ++)printf (“% 7d”,t[i][ j]);printf (“\n”);}}
7
使用VC ++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将ss所指字符串中所有下标为奇数 的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *ss){}void main (void){char tt [51];printf (“\nPlease enter an character string within 50 characters:\n”);gets(tt);printf(“\n\nAfter changing,the string\n %s”,tt);fun(tt);printf(“\nbecomes\n %s”,tt);}
8
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是根据以下公式计算S,并将计算结果作为函数值返回,通过形参传入。例如,若n的值为11时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <string.h>float fun(int n){}void main (){int n;float s;system(“CLS”);printf (“\nPlease enter N:”);scanf (“%d”,&n);s=fun(n);printf(“The result is:%f\n”, s);}
9
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是将a中的十位数和个位数依次放在c的个位和百位上,b中的十位数和个位数依次放在c的十位和千位上。例如,当a=45, b=12时,调用该函数后c=2514。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include <conio.h>#include <stdio.h>void fun (int a, int b, long * c){}main (){int a,b;long c;printf(“Input a,b:”);scanf (“%d%d”, &a, &b);fun(a,b,&c);printf (“The result is :%ld\n”,c);}
10