计算机二级C语言上机题库及答案(破译版)
计算机二级c语言上机题库.第1套填空题long fun(int n){if (___1___)return(n*fun(___2___));第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i)) 编程题int fun(int score[], int m, int below[]){int I, k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}第2套填空题if (___1___)return 0;else if (___2___)return 1;elsereturn ___3___; }第1处填空:n==0或0==n或!n 第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)改错题第1处:int k=1应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)编程题答案是:void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if( (i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}第3套填空题for (i=0; i<n; i++,___1___){t = s[i];___2___;___3___;}}第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t改错题第1处:s[j]=s[i];应改为s[j++]=s[i]第2处:s[j]=”/0”;应改为s[j]=’\0’;编程题void fun(int x,int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}第4套填空题for (i=1; ___1___;i++)if (i%3==0 ___2___i%7==0)sum +=___3___/i;return sum;第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1改错题第1处:void fun (char *s,int a,int b)应改为void fun(char *s,int *a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;编程题void fun(char *tt,int pp[]){int I;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case ’a’:pp[0]++;break;case ’b’:pp[1]++;break;case ’c’:pp[2]++;break;case ’d’:pp[3]++;break;case ’e’:pp[4]++;break;case ’f’:pp[5]++;break;case ’g’:pp[6]++;break;case ’h’:pp[7]++;break;case ’i’:pp[8]++;break;case ’j’:pp[9]++;break;case ’k’:pp[10]++;break;case ’l’:pp[11]++;break;case ’m’:pp[12]++;break;case ’n’:pp[13]++;break;case ’o’:pp[14]++;break;case ’p’:pp[15]++;break;case ’q’:pp[16]++;break;case ’r’:pp[17]++;break;case ’s’:pp[18]++;break;case ’t’:pp[19]++;break;case ’u’:pp[20]++;break;case ’v’:pp[21]++;break;case ’w’:pp[22]++;break;case ’x’:pp[23]++;break;case ’y’:pp[24]++;break;case ’z’:pp[25]++;break;}tt++;}}第5套填空题return3.14159*___1___/2.0;}main(){double x;printf("Enter x:");scanf("%lf",___2___);printf(" s = %lf\n ",fun(___3___));}第1处填空:r*r第2处填空:&x第3处填空:x改错题第1处:a[i+1]=a[i];应改为a[i]=a[i+1]编程题void fun(int m,int k,int xx[]){int g=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if(flag==1&&j>=i){if(k>=0){xx[g++]=I;k--;}elsebreak;}}}第6套填空题while (s ___1___ q){s = s +(double)(n+1)/n;___2___;}printf("n=%d\n",n);___3___;}main(){printf("%f\n",fun(50));}第1处填空:<=第2处填空:n++或n+=1或n=n+1 第3处填空:return s或return (s)改错题第1处:for (i=2;i<m;i++)应改为for(i=2;i<=m;j++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i)编程题void fun(char a[], char b[], int n) {int I,j=0;for(i=0;i<LEN;i++)if(i!=n){b[j]=a[i];j++;}b[j]=’\0’;}第7套填空题switch(___1___){case 1:c1++;___2___;case 2:c2++;___3___;case 3:c3++;}n /= 10;}}main(){long n = 123114350L;fun(n);printf("\nTheresult :\n");printf("n=%ld c1=%dc2=%d c3=%d\n", n, c1, c2,c3);}第1处填空:n%10第2处填空:break第3处填空:break改错题第1处:p = j应改为p=j;第2处:p = i应改为p=j;编程题void fun (int *s,int t,int *k){int I ,max;max=s[0];for(i=0;i<t:i++)if(s[i]>max){max=s[i];*k=I;}}第8套填空题scanf("%d",___1___);max = ___2___num[i] : max;} while(___3___);printf("max=%d\n",max);}第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i]改错题第1处:void fun(char *p);应改为void fun(char *p)第2处:p=q+I;应改为q=p+i;编程题float fun(int n){int i;float s=1.0,t=1.0;for(i=2;i<=n;i++){t=t+i;s=s+1/t;}return s;}第9套填空题if (*s>='A' &&*s<='Z')___1___;if (*s>='a' &&*s<='z')___2___;s++;}}main(){char s[100];int upper = 0, lower =0;printf("\nPlease astring : ");gets(s);fun(s, &upper,&lower);printf("\n upper = %dlower = %d\n", ___3___);}第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower改错题第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;编程题float fun(int m,int n){float p,t=1.0;int i;for (i=1;i<=m;i++)t=t*i;p=t;for(t=1.0,i=1;i<=n;i++)t=t*i;p=p/t;for(t=1.0,i=1;i<=m-n;i++)t=t*i;p=p/t;return p;}第10套填空题mbers are:%d,%d,%d\n", a, b, c);if (a > b)___1___;else___2___;if (max < c)___3___;printf("max=%d\n", max);}第1处填空:max=a第2处填空:max=b第3处填空:max=c改错题第1处:void fun(char *s,*t1,*t2,*w)应改为void fun(char *s,char *t1,char *t2,char *w)第2处:while(r)应改为while(*r) 编程题float fun(){float x1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=le-6);return x1;}第11套填空题k = n-___1___;elsek = n-2;c = ___2___ ;for (i=k-2; i>=1;i=i-2)s[i+2] = s[i];s[1] = ___3___;}main(){char s[80] = "abcdefgh";printf("\nTheoriginal stringis : %s\n", s);fun(s);printf("\nThe result is : %s\n", s);}第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c改错题第1处:n=*p-‘o’;应改为n=*p-‘0’;第2处:n=n*7+*p-‘o’;应改为n=n*8+*p-‘0’;编程题int fun(int a[][N]) {int i,j;for(i=0;i<N;i++)for(j=0;j<=I;j++)a[i][j]=0;}第12套填空题if((tt[i]>='A')&&(___1___))tt[i] +=___2___;}return (___3___);}main(){char tt[81];printf("\nPleaseenter a string: ");gets(tt);printf("\nThe resultstring is: \n%s",fun(tt));}第1处填空:tt[i]<=’z’或’z’>=tt[i]第2处填空:32或’a’-‘A’第3处填空:tt改错题第1处:a = NULL;应改为a=NULL;第2处:if(r==p)应改为if(*r==*p)编程题double fun(int w[][N]){int i,j,k=0;double s=0.0;for(j=0;j<N;j++){s+=w[0][j];k++;}for(j=0;j<N;j++){s+=w[N-1][j];k++;}for(i=1;i<=N-2;i++){s+=w[i][0];k++;}for(i=1;i<=N-2;i++){s+=w[i][N-1];k+;}rturn s/=k;}第13套填空题#include <stdio.h>___1___{int i, m;m = 1;for (i=___2___; i<n;i++)if (___3___){m=0;break;}if (m==1 && n>1)return("yes!");elsereturn("no!");}main(){int k = 0;printf("Input:");scanf("%d", &k);printf("%s\n",fun(k));}第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==或!(n%i)或0==n%i改错题第1处:t += 1.0/k;应改为t+=1.0/i;第2处:应填return t;编程题vid fun(int tt[M][N] ,int pp[N]){int i,j,min;for(j=0;j<N;j++){min=tt[0][j];for(i=0;i<M;i++){if(tt[i][j]<min)min=tt[i][j];}pp[j]=min;}}第14套填空题while (___1___){if (*p>='a' &&*p<='z'){s[i] = *p;___2___;}p++;}s[i] = ___3___;}main(){char str[80];printf("\nEnter astring :");gets(str);printf("\n\nThestring is : %s\n", str);fun(str);printf("\n\nThestring of changingis : %s\n", str);}第1处填空:*p或*p!=’\0’或*p!=0 第2处填空:i++或++i或i+=1或i=i+1第3处填空:’\0’或0改错题第1处:int r;应改为double r;第2处:while (fabs(n-m)<0.001)应改为while (fabs(n-m)>0.001)编程题int fun (int a[M][N]){int i,j,s=0;for(j=0;j<N;j++){s+=a[0][j];s+=a[M-1][j];}for(i=1;i<=M-2;i++){s+=a[i][0];s+=a[i][N-i];}return s;}第15套填空题If(*ste_1_ch){ str[0]=ch;_2_=0;}}Main(){ char s[81], c;Printf(“\nplease enter a string:\n”);gets(s);Prin tf(“\nplease enter the character to search :”);C=getchar();Fun(_3_);Printf(“\nThe result is%s\n”, s);}第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c改错题第1处:void fun(char str,char ch)应改为void fun(char *str,char ch) 第2处:if(*str==ch)应改为if(*str==’\0’)第3处:str[1]=’0’;应改为str[1]=’\0’;或str[1]=0 编程题unsigned fun(unsigned w){unsigned t,s=0,s1=1,p=0;t=w;while(t>10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}return s;}第16套填空题if (___1___)flag = 1;if (___2___)flag = 1;return ___3___;}main(){int year;printf("Input theyear:");scanf("%d", &year);if (fun(year))printf("%d is aleap year.\n", year);elseprintf("%d is nota leap year.\n", year);}第1处填空:n%100 !=0或0 !=n%100第2处填空:N400==0或!(n%400)或0==n%400第3处填空:flag改错题第1处:p->next=NULL;应改为p=s;第2处:s->data=rand()%m;应改为s->data=rand()%(m-1)第3处:return p;应改为return h;编程题float fun(float h){long t;float s;h=h*1000;t=(h+5)/10;s=(float)t/100.0;return s;}第17套填空题for (i=0; i<___1___;i++)if (a[i]<60)b[5]++;___2___b[(a[i]-60)/10]++;}main(){int i, a[100] = {93,85, 77, 68, 59, 43, 94, 75,98}, b[6];fun(___3___, 9);printf("the result is:");for (i=0; i<6; i++)printf("%d ",b[i]);printf("\n");}第1处填空:n第2处填空:else第3处填空:a,b改错题第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}编程题void fun (char *s){char ch;int i,m,n;i=0;m=n=strlen(s)-1;while(i<(n+1)/2){ch=s[i];s[i]=s[m];s[m]=ch;i++;m--;}}第18套填空题if (___1___)___2___;p++;i++;}return ___3___;}main(){char str[N];char ch;int i, n;printf("******* Inputthe originalstring*******\n ");gets(str);printf("******* TheOriginal string*******\n");puts(str);printf("******* Inputcharacter *******\n");scanf("%c", &ch);n = fun(str, ch);printf(" \nThe number of character is: %d\n", n);printf("******* The suffix of character*******\n");for (i=0; i<n; i++)printf(" %d ",bb[i]);}第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n改错题第1处:void fun(int a,int b)应改为void fun(int *a,int *b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;编程题void fun(int array[3][3]){int i,j,temp;for(i=0;i<3;i++)for(j=0;j<I;j++){temp=array[i][j];array[i][j]=array[j][i];array[j][i]=temp;}}第19套填空题below[j++] = ___1___;return j;}main(){int i, n, below[9];int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90};n = fun(score, 9,___2___);printf("\nBelow the average score are: ");for (i=0; i<n; i++)printf("%d ",___3___);}第1处填空:score[i]或*(score+i) 第2处填空:below第3处填空:below[i]或*(below+i)改错题第1处:void fun(long s,long t) 应改为void fun(long s,long *t)第2处:while(s<0)应改为while(s>0)编程题void fun(char s[],int c){int i=0;char *p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]=’\0’;}第20套填空题pp[j++] =___1___;*n = ___2___;}main(){int x, aa[1000], n,i;printf("\nPleaseenter an integernumber:\n");scanf("%d", &x);fun(x, ___3___);for (i=0; i<n; i++)printf("%d ",aa[i]);printf("\n");}第1处填空:i第2处填空:j第3处填空:aa,&n改错题第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if (m>=a[mid])应改为if(m>a[mid])int fun (int lim,int aa[MAX]){int k=0,I,j;for(i=lim;i>1;i--){for(j=2;j<I;j++)if(i%j==0)break;elsecontinue;if(j>=i){aa[k]=i;k++;}}return k++;}第21套填空题t2[j]=s[i];___1___;}else{t1[k++] =s[i];}t2[j] = 0;t1[k] = 0;for (i=0; i<k; i++)___2___;for (i=0; i<___3___;i++)s[k+i] = t2[i];}main(){char s[80] ="ba3a54j7sd567sdffs";printf("\nTheoriginal stringis : %s\n", s);fun(s);printf("\nThe resultis : %s\n", s);}第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j改错题第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;编程题void fun( char *s,int num){char t;int I,j;for(i=1;i<num-2;i++)for(j=i+1;j<num-1;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}}第22套填空题给定给定程序中,函数FUN的功能是:在形参S所指字符串中的每个数字字符之后插入一个*号。
C语言二级考试上机答案全解
C语言二级考试上机答案全解1. 题目:以下哪个选项是C语言中的关键字?A. intB. INTC. IntegerD. int32_t答案:A解析:在C语言中,关键字是预定义的,用于表示特定的语言结构,如数据类型、控制语句等。
'int'是C语言中的基本数据类型关键字,用于声明整型变量。
'INT'和'Integer'不是C语言的关键字,而'int32_t'是C99标准中定义的类型,用于表示32位整型,但不是C 语言的关键字。
2. 题目:以下哪个函数用于计算两个整数的和?A. max(a, b)B. min(a, b)C. sum(a, b)D. pow(a, b)答案:C解析:在C语言的标准库中,并没有名为'sum'的函数。
然而,根据题目的语境,我们可以推断出'sum(a, b)'是用来计算两个整数a和b的和的函数。
'max(a, b)'和'min(a, b)'分别用于计算两个数中的最大值和最小值,而'pow(a, b)'用于计算a的b次方。
3. 题目:以下哪个选项是正确的C语言变量声明?A. int a = 5;B. int a = '5';C. int a = "5";D. int a = 5.0;答案:A解析:在C语言中,变量声明需要指定数据类型和变量名,并且可以初始化。
选项A中,'int a = 5;'是正确的声明,其中'int'是数据类型,'a'是变量名,'5'是整数值。
选项B中使用了单引号,这是用于字符常量的,而不是整数。
选项C使用了双引号,这是用于字符串常量的,不能用于整数变量的声明。
选项D中使用了浮点数,这与声明的整型变量类型不匹配。
4. 题目:以下哪个选项是C语言中正确的数组声明?A. int a[];B. int a[5];C. int a[5] = {1, 2, 3, 4, 5};D. All of the above答案:D解析:在C语言中,数组可以以多种方式声明。
全国计算机等级考试二级C语言上机考试题库及答案
第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100 +(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText 和WriteText实现。
答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100 +(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。
答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
计算机二级C语言上机试题库和答案解析(100套)
完美WORD格式计算机二级 c 语言上机题库及答案内部资料,切勿外传!.第 1 套填空题请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>longfun(int n){if ( 1 )return (n*fun( 2));return 3;}main(){printf("10!=%ld\n", fun(10));}第 1 处填空:n>1 或 1<n第 2 处填空:n-1第 3 处填空:1 或 11 或 1L改错题下列给定程序的功能是:读入一个整数 K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数 2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(intn);{int i,m;m =1;/********found********/for (i=2; i<n;i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %dis(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第 1 处:Isprime(int n);应改为Isprime(int n)第 2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
计算机二级C语言考试上机试题及答案
xx年计算机二级C语言考试上机试题及答案1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进展后序遍历的结果为( )。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。
A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程9.两个或两个以上模块之间关联的严密程度称为( )。
A.耦合度B.内聚度C.复杂度D.数据传输特性10.以下描述错误的选项是( )。
A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
计算机二级C语言机试题库及答案(破译版)
计算机二级c语言机试题库.第1套填空题long fun(int n){if (___1___)return (n*fun(___2___));第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题int fun(int score[], int m, int below[]){int I, k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}第2套填空题if (___1___)return 0;else if (___2___)return 1;elsereturn ___3___;}第1处填空:n==0或0==n或!n第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)改错题第1处:int k=1应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)编程题答案是:void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if( (i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}第3套填空题for (i=0; i<n; i++, ___1___){t = s[i];___2___;___3___;}}第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t改错题第1处:s[j]=s[i];应改为s[j++]=s[i]第2处:s[j]=‖/0‖;应改为s[j]=‘\0‘;编程题void fun(int x,int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}第4套填空题for (i=1; ___1___; i++)if (i%3==0 ___2___ i%7==0)sum += ___3___/i;return sum;第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1改错题第1处:void fun (char *s,int a,int b)应改为void fun(char *s,int *a,int *b) 第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;编程题void fun(char *tt,int pp[]){int I;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case ‘a‘:pp[0]++;break;case ‘b‘:pp[1]++;break;case ‘c‘:pp[2]++;break;case ‘d‘:pp[3]++;break;case ‘e‘:pp[4]++;break;case ‘f‘:pp[5]++;break;case ‘g‘:pp[6]++;break;case ‘h‘:pp[7]++;break;case ‘i‘:pp[8]++;break;case ‘j‘:pp[9]++;break;case ‘k‘:pp[10]++;break;case ‘l‘:pp[11]++;break;case ‘m‘:pp[12]++;break;case ‘n‘:pp[13]++;break;case ‘o‘:pp[14]++;break;case ‘p‘:pp[15]++;break;case ‘q‘:pp[16]++;break;case ‘r‘:pp[17]++;break;case ‘s‘:pp[18]++;break;case ‘t‘:pp[19]++;break;case ‘u‘:pp[20]++;break;case ‘v‘:pp[21]++;break;case ‘w‘:pp[22]++;break;case ‘x‘:pp[23]++;break;case ‘y‘:pp[24]++;break;case ‘z‘:pp[25]++;break;}tt++;}}第5套填空题return 3.14159*___1___/2.0;}main(){double x;printf("Enter x: ");scanf("%lf", ___2___);printf(" s = %lf\n ", fun(___3___));}第1处填空:r*r第2处填空:&x第3处填空:x改错题第1处:a[i+1]=a[i];应改为a[i]=a[i+1]编程题void fun(int m,int k,int xx[]){int g=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if(flag==1&&j>=i){if(k>=0){xx[g++]=I;k--;}elsebreak;}}第6套填空题while (s ___1___ q){s = s + (double)(n+1)/n;___2___;}printf("n=%d\n",n);___3___;}main(){printf("%f\n", fun(50));}第1处填空:<=第2处填空:n++或n+=1或n=n+1第3处填空:return s或return (s)改错题第1处:for (i=2;i<m;i++)应改为for(i=2;i<=m;j++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i)编程题void fun(char a[], char b[], int n){int I,j=0;for(i=0;i<LEN;i++)if(i!=n){b[j]=a[i];j++;}b[j]=‘\0‘;}第7套填空题switch(___1___){case 1:c1++;___2___;case 2:c2++;___3___;case 3:c3++;}n /= 10;}}main(){long n = 123114350L;fun(n);printf("\nThe result :\n");printf("n=%ld c1=%d c2=%d c3=%d\n", n, c1, c2, c3);}第1处填空:n%10第2处填空:break第3处填空:break改错题第1处:p = j应改为p=j;第2处:p = i应改为p=j;编程题void fun (int *s,int t,int *k){int I ,max;max=s[0];for(i=0;i<t:i++)if(s[i]>max){max=s[i];*k=I;}}第8套填空题scanf("%d", ___1___);max = ___2___ num[i] : max;} while(___3___);printf("max=%d\n", max);}第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i]改错题第1处:void fun(char *p);应改为void fun(char *p)第2处:p=q+I;应改为q=p+i;编程题float fun(int n){int i;float s=1.0,t=1.0;for(i=2;i<=n;i++){t=t+i;s=s+1/t;}return s;}第9套填空题if (*s>='A' && *s<='Z')___1___;if (*s>='a' && *s<='z')___2___;s++;}}main(){char s[100];int upper = 0, lower = 0;printf("\nPlease a string : ");gets(s);fun(s, &upper, &lower);printf("\n upper = %d lower = %d\n", ___3___); }第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower改错题第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;编程题float fun(int m,int n){float p,t=1.0;int i;for (i=1;i<=m;i++)t=t*i;p=t;for(t=1.0,i=1;i<=n;i++)t=t*i;p=p/t;for(t=1.0,i=1;i<=m-n;i++)t=t*i;p=p/t;return p;}第10套填空题mbers are:%d,%d,%d\n", a, b, c);if (a > b)___1___;else___2___;if (max < c)___3___;printf("max=%d\n", max);}第1处填空:max=a第2处填空:max=b第3处填空:max=c改错题第1处:void fun(char *s,*t1,*t2,*w)应改为void fun(char *s,char *t1,char *t2,char *w) 第2处:while(r)应改为while(*r)编程题float fun(){float x1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=le-6);return x1;}第11套填空题k = n-___1___;elsek = n-2;c = ___2___ ;for (i=k-2; i>=1; i=i-2)s[i+2] = s[i];s[1] = ___3___;}main()char s[80] = "abcdefgh";printf("\nThe original string is : %s\n", s);fun(s);printf("\nThe result is : %s\n", s);}第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c改错题第1处:n=*p-‗o‘;应改为n=*p-‗0‘;第2处:n=n*7+*p-‗o‘;应改为n=n*8+*p-‗0‘;编程题int fun(int a[][N]){int i,j;for(i=0;i<N;i++)for(j=0;j<=I;j++)a[i][j]=0;}第12套填空题if((tt[i]>='A')&&(___1___))tt[i] += ___2___;}return (___3___);}main(){char tt[81];printf("\nPlease enter a string: ");gets(tt);printf("\nThe result string is: \n%s", fun(tt)); }第1处填空:tt[i]<=‘z‘或‘z‘>=tt[i]第2处填空:32或‘a‘-‗A‘第3处填空:tt改错题第1处:a = NULL;应改为a=NULL;第2处:if(r==p)应改为if(*r==*p)编程题double fun(int w[][N]){int i,j,k=0;double s=0.0;for(j=0;j<N;j++){s+=w[0][j];k++;}for(j=0;j<N;j++){s+=w[N-1][j];k++;}for(i=1;i<=N-2;i++){s+=w[i][0];k++;}for(i=1;i<=N-2;i++)s+=w[i][N-1];k+;}rturn s/=k;}第13套填空题#include <stdio.h>___1___{int i, m;m = 1;for (i=___2___; i<n; i++)if (___3___){m=0;break;}if (m==1 && n>1)return("yes!");elsereturn("no!");}main(){int k = 0;printf("Input:");scanf("%d", &k);printf("%s\n", fun(k));}第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==或!(n%i)或0==n%i改错题第1处:t += 1.0/k;应改为t+=1.0/i;第2处:应填return t;编程题vid fun(int tt[M][N] ,int pp[N]){int i,j,min;for(j=0;j<N;j++){min=tt[0][j];for(i=0;i<M;i++){if(tt[i][j]<min)min=tt[i][j];}pp[j]=min;}}第14套填空题while (___1___){if (*p>='a' && *p<='z'){s[i] = *p;___2___;}p++;}s[i] = ___3___;main(){char str[80];printf("\nEnter a string :");gets(str);printf("\n\nThe string is : %s\n", str);fun(str);printf("\n\nThe string of changing is : %s\n", str); }第1处填空:*p或*p!=‘\0‘或*p!=0第2处填空:i++或++i或i+=1或i=i+1第3处填空:‘\0‘或0改错题第1处:int r;应改为double r;第2处:while (fabs(n-m)<0.001)应改为while (fabs(n-m)>0.001)编程题int fun (int a[M][N]){int i,j,s=0;for(j=0;j<N;j++){s+=a[0][j];s+=a[M-1][j];}for(i=1;i<=M-2;i++){s+=a[i][0];s+=a[i][N-i];}return s;}第15套填空题If(*ste_1_ch){ str[0]=ch;_2_=0;}}Main(){ char s[81], c;Printf(―\nplease enter a string:\n‖);gets(s);Prin tf(―\nplease enter the character to search :‖);C=getchar();Fun(_3_);Printf(―\nThe result is%s\n‖, s);}第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c改错题第1处:void fun(char str,char ch)应改为void fun(char *str,char ch)第2处:if(*str==ch)应改为if(*str==‘\0‘)第3处:str[1]=‘0‘;应改为str[1]=‘\0‘;或str[1]=0编程题unsigned fun(unsigned w){unsigned t,s=0,s1=1,p=0;t=w;while(t>10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}return s;}第16套填空题if (___1___)flag = 1;if (___2___)flag = 1;return ___3___;}main(){int year;printf("Input the year:");scanf("%d", &year);if (fun(year))printf("%d is a leap year.\n", year);elseprintf("%d is not a leap year.\n", year);}第1处填空:n%100 !=0或0 !=n%100第2处填空:N400==0或!(n%400)或0==n%400第3处填空:flag改错题第1处:p->next=NULL;应改为p=s;第2处:s->data=rand()%m;应改为s->data=rand()%(m-1)第3处:return p;应改为return h;编程题float fun(float h){long t;float s;h=h*1000;t=(h+5)/10;s=(float)t/100.0;return s;}第17套填空题for (i=0; i<___1___; i++)if (a[i]<60)b[5]++;___2___b[(a[i]-60)/10]++;}main(){int i, a[100] = {93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6];fun(___3___, 9);printf("the result is: ");for (i=0; i<6; i++)printf("%d ", b[i]);printf("\n");}第1处填空:n第2处填空:else第3处填空:a,b改错题第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}编程题void fun (char *s){char ch;int i,m,n;i=0;m=n=strlen(s)-1;while(i<(n+1)/2){ch=s[i];s[i]=s[m];s[m]=ch;i++;m--;}}第18套填空题if (___1___)___2___;p++;i++;}return ___3___;}main(){char str[N];char ch;int i, n;printf("******* Input the original string*******\n ");gets(str);printf("******* The Original string *******\n");puts(str);printf("******* Input character *******\n");scanf("%c", &ch);n = fun(str, ch);printf(" \nThe number of character is: %d\n", n);printf("******* The suffix of character *******\n");for (i=0; i<n; i++)printf(" %d ", bb[i]);}第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n改错题第1处:void fun(int a,int b)应改为void fun(int *a,int *b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;编程题void fun(int array[3][3]){int i,j,temp;for(i=0;i<3;i++)temp=array[i][j];array[i][j]=array[j][i];array[j][i]=temp;}}第19套填空题below[j++] = ___1___;return j;}main(){int i, n, below[9];int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90};n = fun(score, 9, ___2___);printf("\nBelow the average score are: ");for (i=0; i<n; i++)printf("%d ", ___3___);}第1处填空:score[i]或*(score+i)第2处填空:below第3处填空:below[i]或*(below+i)改错题第1处:void fun(long s,long t) 应改为void fun(long s,long *t)第2处:while(s<0)应改为while(s>0)编程题void fun(char s[],int c){int i=0;char *p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]=‘\0‘;}第20套填空题pp[j++] = ___1___;*n = ___2___;}main(){int x, aa[1000], n, i;printf("\nPlease enter an integer number:\n");scanf("%d", &x);fun(x, ___3___);for (i=0; i<n; i++)printf("%d ", aa[i]);printf("\n");}第1处填空:i第2处填空:j第3处填空:aa,&n第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if (m>=a[mid])应改为if(m>a[mid])int fun (int lim,int aa[MAX]){int k=0,I,j;for(i=lim;i>1;i--){for(j=2;j<I;j++)if(i%j==0)break;elsecontinue;if(j>=i){aa[k]=i;k++;}}return k++;}第21套填空题t2[j]=s[i];___1___;}else{t1[k++] = s[i];}t2[j] = 0;t1[k] = 0;for (i=0; i<k; i++)___2___;for (i=0; i<___3___; i++)s[k+i] = t2[i];}main(){char s[80] = "ba3a54j7sd567sdffs";printf("\nThe original string is : %s\n", s);fun(s);printf("\nThe result is : %s\n", s);}第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j改错题第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;编程题void fun( char *s,int num){char t;int I,j;for(i=1;i<num-2;i++)for(j=i+1;j<num-1;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}第22套填空题给定给定程序中,函数FUN的功能是:在形参S所指字符串中的每个数字字符之后插入一个*号。
计算机二级C上机考试题库及答案
计算机二级C上机考试题库及答案在计算机二级C语言上机考试中,考生需要掌握C语言的基本语法、数据结构、算法设计等知识。
以下是一套模拟题库及答案,供考生参考和练习。
1. 题目:以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B解析:在C语言中,标识符可以由字母、数字和下划线组成,且不能以数字开头。
因此,只有选项B中的"variable2"是合法的标识符。
2. 题目:以下哪个选项是C语言中的整型常量?A. 0x1AB. 1.2E3C. 0.5D. 1.2答案:A解析:整型常量可以是十进制、八进制或十六进制的整数。
选项A中的"0x1A"是十六进制的整型常量,而选项B、C和D都是浮点型常量。
3. 题目:以下哪个选项是C语言中的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello" "World"D. 'H' "ello" 'W' "orld"答案:A解析:字符串字面量是由双引号括起来的字符序列。
选项A中的"Hello World"是一个合法的字符串字面量。
选项B是字符字面量,选项C和D的组合方式在C语言中不合法。
4. 题目:以下哪个选项是C语言中的合法数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int b[] = {1, 2, 3, 4, 5};C. int c[5] = {1, 2, 3};D. int d[];答案:A解析:在C语言中,数组的声明需要指定数组的大小,除非数组作为函数的参数。
选项A正确地声明了一个大小为5的整型数组,并初始化了它的元素。
全国计算机等级考试二级C语言上机题库(全)
int i; for(i=1;i<strlen(ss);i+=2) {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返 回。例如:当形参 n 的值为 10 的时,函数返回:9.6125588。 第一处 s=0; 第二处 for(i=1;i<=n;i++) 第三处 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计 substr 所指字符串在 str 所指字符串中出现次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==’\0’) 3. 程序设计 请编写一个函数 fun,它的功能是:根据以下公
for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s)b[n++]=a[i]; return n; } 第九套 1. 程序填空 给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平 均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至 数据的前部,大于等于平均数的移至 x 所指数组的后部,平均值作为 函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;i<N;i++) av+=x[i]/N 第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计字符串各元音字母 (即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0;
计算机二级c语言考试题库和答案
计算机二级c语言考试题库和答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12U答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello"B. 'Hello'C. "Hello", "World"D. 'Hello', 'World'答案:A3. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. _variableD. variable-2答案:B4. 在C语言中,以下哪个选项是正确的浮点型常量?A. 3.14E2B. 3.14e-2C. 3.14ED. 3.14e答案:B5. 下列哪个选项是C语言中的保留字?A. defineB. sizeofC. includeD. myFunction答案:B6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D8. 在C语言中,以下哪个选项是正确的函数声明?A. void myFunction();B. int myFunction();C. int myFunction(int x);D. All of the above答案:D9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = 0;D. All of the above答案:D11. 下列哪个选项是C语言中的循环结构?A. forB. whileC. do-whileD. All of the above答案:D12. 在C语言中,以下哪个选项是正确的条件语句?A. ifC. if-elseD. All of the above答案:D13. 下列哪个选项是C语言中的输入输出函数?A. printf()B. scanf()C. Both A and BD. None of the above答案:C14. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int a;float b;B. struct myStruct {int a;float b;};C. Both A and BD. None of the above答案:C15. 下列哪个选项是C语言中的动态内存分配函数?A. malloc()B. calloc()C. realloc()D. All of the above答案:D16. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE};C. Both A and BD. None of the above答案:C17. 下列哪个选项是C语言中的联合体声明?A. union {int a;float b;} myUnion;B. union myUnion {int a;float b;};C. Both A and BD. None of the above答案:C18. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. const double PI = 3.14;C. Both A and BD. None of the above答案:A19. 下列哪个选项是C语言中的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C20. 在C语言中,以下哪个选项是正确的递归函数声明?A. int factorial(int n);B. void printNumbers(int n);C. int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}D. All of the above答案:D二、填空题(每题2分,共20分)21. 在C语言中,`sizeof`运算符用于获取______的字节大小。
计算机二级C语言上机题库及答案(100套)
~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
二级C语言上机考试题库及答案
二级C语言上机考试题库及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的数据类型?A. intB. floatC. doubleD. All of the above答案:D2. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D3. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcmp()D. strcat()答案:A4. 下列哪个选项不是C语言中的控制结构?A. if-elseB. switch-caseC. forD. goto答案:D5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. Both A and BD. None of the above答案:C6. C语言中,以下哪个选项是正确的函数声明?A. int myFunction();B. int myFunction;C. int myFunction() {}D. Both A and C答案:D7. 在C语言中,哪个关键字用于定义指针?A. intB. charC. *D. None of the above答案:C8. 下列哪个选项是C语言中的预处理指令?A. #includeB. #defineC. Both A and BD. None of the above答案:C9. 在C语言中,以下哪个选项是正确的结构体声明?A. struct MyStruct { int a; float b; };B. struct MyStruct { int a; char b; };C. Both A and BD. None of the above答案:C10. 下列哪个选项是C语言中的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。
