最新-计算机二级c语言上机题库及答案(填空类) 精品
1.下列给定程序中,函数fun的功能是计算如下公式 直到 ,并且把计算结果作为函数值返回。 例如,若形参e的值为1e-3,则函数返回值为0.551690。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /**********found**********/ x=__1__/4; /**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i; /**********found**********/ x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); } 【参考答案】 (1)3.0或(double)3 (2)> (3) (t+1) 2. 下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。
例如,当形参n的值为10时,函数返回值为9.612558。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); } printf("\nThe result is: %f\n",fun(n)); } 【参考答案】 (1) 0 (2) n (3) (t*t) 3.给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为abcdef35adgh3kjsdf7,则输出结果为4。 请在下划线处填入正确内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include 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); } 【参考答案】 (1) s[i] (2) '9' (3)*t=n 4.下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数值返回。 例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9 int fun(int a[], int n) { int i,j; j = 0; for (i=0; i/**********found**********/ if (a[i]%2==___1___) { /**********found**********/ a[j] = a[i]; ___2___; } /**********found**********/ return ___3___; } main() { int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf("\nThe original data :\n"); for (i=0; iprintf("\n"); n = fun(b, N); printf("\nThe number of odd : %d \n", n); printf("\nThe odd number :\n"); for (i=0; iprintf("\n"); } 【参考答案】 (1)1 (2) j++ (3)j 5.下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。 例如,输入一个整数27638496,函数返回值为64862。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 填空 #include unsigned long fun(unsigned long n) { unsigned long x=0; int t; while(n) { t=n%10; /**********found**********/ if(t%2==____1____) /**********found**********/ x=____2____+t; /**********found**********/ n=____3____; } return x; } main() { unsigned long n=-1; while(n>99999999||n<0) { printf("Please input(0printf("\nThe result is: %ld\n",fun(n)); } 【参考答案】 (1)0 (2) 10*x (3)n/10 6.下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。 例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。 规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不行更改程序的结构! # include #define N 9 void fun(int a[], int n) { int i,j, max, min, px, pn, t; for (i=0; i{ /**********found**********/ max = min = ___1___; px = pn = i; for (j=i+1; j/**********found**********/ if (max<___2___) { max = a[j]; px = j; } /**********found**********/ if (min>___3___) { min = a[j]; pn = j; } } if (pn != i) { t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; }
二级C语言上机题库参考答案 (2)
1填空:(1)STYPE (2)FILE (3)fp改错:(1) for(i=0;i<=sl;i++) (2) t[2*sl]='\0'或t[sl+sl]='\0' 编程:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2填空:(1) *fw (2) str (3) str改错:(1) void fun(long s,long *t)(2) s1=s1*10;编程:int i,j=0,min=a[0].s;for(i=0;i<N;i++){if(a[i].s<min){j=0;b[j++]=a[i];min=a[i].s;}else if(min==a[i].s)b[j++]=a[i];}return j;3填空:(1)fp(2)fclose(fp)(3)myfile3.txt改错:(1)for(i=j+1;i<n;i++) (2)p=i;编程:*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;4填空:(1)"r" (2 )fs (3)ft改错:(1)if (d%2==0)(2 )s/=10;编程:int i = 0, j = 0;while(s[i]){if(i % 2 == 0 && s[i] % 2 == 0)t[j++] = s[i];i++;}t[j] = 0;5填空:(1)x (2)p (3)s改错:(1)long k=1; (2)num/=10;编程:int i;float aver=0.0;for(i=0;i<n;i++)aver+=a[i];aver=aver/n;return aver;6填空:(1) next (2) t->data (3) t改错:(1) void fun(char *a) (2) print("%c",*a); 编程:int i;char *p=s,*q=t;int n=0,m=0;while(*p) /*计算串s的长度n,其中p为临时指针*/ {n++;p++;}while(*q) /*计算串t的长度m,其中q为临时指针*/ {m++;q++;}if(n>=m) /*比较m和n的值,设置p指向较大的指针*/ p=s;elsep=t;return p;7填空:(1) q (2) next (3) next改错:(1) 缺分号(2) p = i;编程:*n=0; int i;for(i=1;i<=m;i++)if(i%7==0||i%11==0)a[*n++]=i;8填空:(1)0或NULL (2)n (3)head,ch改错:(1) for(i=0,t=0;p[i];i++) (2) c[t]='\0';编程:int i;for(i=1;i<strlen(ss);i+=2){If( (ss[i]>='a'&&ss[i]<='z') ss[i]-=32;9填空:(1) *n (2) next (3) head改错:(1) a=NULL; (2) if(*r==*p)编程:int i,j=0;for(i=0;i<strlen(s);i+=2)if(s[i]%2==0) t[j++]=s[i];t[j]='\0';10填空:(1) data (2) next (3) head改错:(1) while(*r) (2) *a=*r;a++;r++;编程:int i,j=0;for((i=0;i<strlen(s);i+=2)t[j++]=s[i];t[j]='\0';11填空:(1)M (2)< (3)k改错:(1)if(('a'<=tt[i])&&(tt[i]<='z')) (2)tt[i]-=32;编程:int i,j;int t=0;for(i=2;i<m;i++){j=2;while(j<i){if(i%j==0){xx[t]=i;t++;break;}j++;}*k=t;12填空:(1) j++ (2) s[i]=t1[i] (3) j改错:(1) for(j = i + 1; j < 6; j++) (2) *(pstr + i) =*( pstr + j);编程:int cnt=0;char *p=ss;while(*p){if(*p==c)cnt++;p++;}return cnt;13填空:(1)&& (2)0 (3)s[j]改错(1)for(i=2;i<=m;i++)(2)y+=1.0/(i*i);编程题:int c[3][3];for(i=0,i<3;i++)for(j=0;j<3;j++){c[i][j]=a[j][i];b[i][j]=a[i][j]+c[i][j];}14填空:(1)s[i] (2)'9' (3) *t=n;改错:(1) t=*x;*x=y; (2) return (t);编程:int i;*n=0;for(i=7;i<1000;i++)if (((i%7)==0)||((i%11)==0)&&((i%77)!=0)a[(*n)++]=i; 15填空:(1) 1 (2) s[k] (3) c改错:(1) long s = 0,t = 0; (2) t = t / 10;编程:char *p=tt;int i;for(i=0;i<26;i++)pp[i]=0;while(*p){if(*p>='a' &&p<='z')pp[*p-'a']+=1;p++;}16填空:(1) t=i (2) i (3) 0改错:(1) while(fabs(t)>=num) (2) t=s/n;编程:int p,m=0;for(p=0;p<LEN;p++)if(p!=n){b[m]=a[p];m++;}b[m]='\0';17填空:(1) 0或'\0' (2) 0 (3) c改错:(1) double sum=0.0; (2) sum/=c;编程:int k;float str=1.0,sum=1.0;for(k=2;k<=n;k++){sum=sum+k;str=str+1/sum;}return str;18填空:(1) i++ (2) m (3) m改错:(1) while((high>=2)&&(n<10)) (2) 缺分号编程:float x1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>0.000001);return x1;19填空:(1)N (2)N-1 (3)0改错:(1)s=s+(n+1.0)/n; (2)return t;编程:int f0=0,f1=1,f;do{f=f0+f1;f0=f1;f1=f;}while(f<t);return f;20填空:(1)0 (2)j-- (3)j改错:(1)double f(double x)(2)缺分号编程:double s=0.0;int i;for(i=1;i<=m;i++)s=s+log(1.0*i);s=sqrt(s);return s;21填空:(1) 0 (2) x (3) t++改错:(1) int i,s1; (2) t[i]=s[s1-1-i];编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;22填空:(1)999 (2)t/10 (3)x改错:(1) void fun(long s,long *t) (2)while(s>0)编程:STREC tmp;int i,j;for (i=0;i<N;i++)for (j=i+1;j<N;j++)if(a[i],s<a[j],s){tmp=a[i];a[i]=a[j];a[j]=tmp;23填空:(1)1 (2)s (3)i*10改错:(1)int fun(int n,int xx[][M]) (2)printf("%d",xx[i][j]); 编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);24填空: (1) 0 (2) 10*x (3) n/10改错: (1) *t=0; (2) if (d%2!=0)编程: char *p=p1;while (*p)p++;while(*p2){*p++=*p2++;*p=0;}25 填空(1) 10 (2) 0 (3) x改错(1) if (n = = 0)(2)缺分号编程: long s=0, t;int i=0,j,n=strlen(p),k,s1;if (p[0]==' -')i++;for (j=i;j<=n-1;j++){t=p[j]-'0';s1=10;for (k=j;k<n-1;k++)t*=s1;s+=t;}if (p[0]=='-')return –s;else return s;26填空:(1)0 (2)n (3)(t*t) 改错:(1)for(i=0;str[i];i++)(2) for(i=0; str[i];i++)编程:double s;float n,t,pi;t=1;pi=0;n=1.0;s=1.0;while((fabs(s))>=eps){pi+=s;t=n/(2*n+1);s*=t;n++;}pi=pi*2;return pi;27填空:(1)1 (2)2*i (3) (-1)改错:(1)缺分号(2)if (m= =k) 编程:int i;*max=a[0];*d=0;for(i=0;i<n;i++)if(*max<a[i]);{*max=a[i];*d=i;}28填空:(1)3.0 (2)> (3) (2*i+1) 改错:(1)double fun (int n)(2)s=s+(double)a/b;编程:int i,j,max=a[0][0];for(i=0;i<2;i++)for (j=0;j<M;j++)if (max<a[i][j])max=a[i][j];return max;29填空:(1)0(2)i++(3)2.0*i改错:(1)void fun (char *s,char *t)(2)t[2*d]='\0';编程:int i,j=o;for(i=1;i<strlen(s);i+=2)if (i%2==0&&s[i]%2)t[j++]=s[i];t[j]='\0';30填空:(1)s[i] (2)k (3)0改错:(1)while (*w) (2)if(*r==*p)编程:int i,j=0;for(i=1;i<strlen(s);i+=2)if(s[i]%2)t[j++]=s[i];t[j]='\0';31填空:(1) k (2) N (3) a[k][i]改错:(1) for(i=strlen(t)-1;i;i--) (2) if(t[j]>t[j+1])编程:char *p=ssint i=0;while(*p){if((i%2)&&(*p>='a'&&*p<='z'))*p-=32;p++;i++;}32填空:(1)k (2)N-1 (3)temp改错:(1)void fun(int a[][M],int m)(2)a[j][k]=(k+1)*(j+1); 编程:*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;33填空:(1)j (2)0 (3)i++改错:(1)for(i=2;i<=m;i++) (2)y-=1.0/(i*i);编程:float av=0.0;int i,j=0;for(i=0;i<m;i++)av+=score[i];av/=m;for(i=0;i<m;i++)if(av>score[i])below[j++]=score[i];return j;10;34填空:(1)t,s(2)s[i](3)0改错:(1)if (i%k==0)(2)if(k>=i)编程:int i=0;*n=0;for (i=1;i<=x;i++)if((x%i==0)&&(i%2))pp[(*n)++]=i;35填空:(1)s (2)—(3) return 0改错:(1)double fun (int n)(2)c=a;a+=b;b=c;编程:int r=0,temp,p,sign=1;for(temp=m+1;temp<m*m;temp++){for(p=2;p<temp;p++){if(temp%p!=0)sign=1;else{sign=0;break;}}if(sign= =1&&p>=temp){if(k>=0){xx[r++]=temp;k- -;}else break;}}36填空:(1)n++ (2)0 (3)s++改错:(1)t+=s[k]; (2)*aver=ave;编程:int i,pos=0,max=*s;for(i=1;i<t;i++){if(max<*(s+i)){max=*(s+i);pos=i;}}*k=pos;37填空:(1) *s (2) s++ (3) n改错:(1) int j,c=0; double xa=0.0; (2) if(x[j] >= xa) 编程:float result,temp=1.0;int i;for(i=1; i<=m; i++)temp=temp*i;result=temp;for(temp=1.0,i=1;i<=n;i++)temp=temp*i;result=result/temp;for(temp=1.0,i=1;i<=m-n;i++)temp=temp*i;result=result/temp;return result;38填空:(1)48 (2)s++ (3)sum改错:(1)if ((k%13= =0) || (k%17= =0)) (2) ] int i;for(i=21;i<=n;i++)if((i%3= =0)&&(i%7 = =0))sum=sum+i;return sprt(sum);39填空:(1) *s (2) 1 (3) k[n]改错:(1) double fun(int k) (2) return s;编程:double s=0.0;int i;for(i=1;i<=n;i++)s=s+1.0/(i*(i+1));return s;40填空:(1) i (2) ps[j] (3) tp改错:(1) double fun(int n) (2) return sum;编程:int i;double a=1,b=1,s=1;for(i=1;i<=n;i++)41填空:(1)double (2)f1 (3) f2改错:(1)p=h->next; (2)p=p->next;编程:int i,n=0,fg=1;char *p=str;while(*p){n++;p++;}for(i=0;i<n/2;i++)if(str[i]==str[n-1-i]);else{fg=0;break;}return fg;42填空:(1)h->next (2)p->next (3)>=改错:(1)p=h->next; (2)p=p->next;编程:int i,j;for(i=0;i<mm;i++) for(j=0;j<nn;j++){b[*n]=*(*(s+i)+j);*n=*n+1;}43填空:(1)NODE *(2)q(3)r改错:(1)if(i%2 || s[i]%2==0)(2)t[j]=0;编程:for(j=0;j<nn;j++) for(i=0;i<mm;i++) b[np++]=s[i][j];44填空:(1)next (2)0 (3)r改错:(1)r=t;(2)if(*r= =0)编程:int i,j,k=0;for(i=0;i<M;i++){for(j=0;j<N;j++)if*(*(a+i)+j){b[k]=*(*(a+i)+j};k++;}elsebreak;b[k]=’\0’;}45填空:(1)p->next (2)q (3)p->next改错:(1)'\0' (2)s++;编程:int b[N],i,j=0;for(i=p+1;i<n;i++){b[j]=w[i];j++;}for(i=0;i<=p;i++){b[j]=w[i];j++;}for(i=0;i<n;i++) w[i]=b[i];46填空:(1) double (2) f1 (3) f2改错:(1) char *fun(char *s, char *t) (2) ss++ (3) tt++ 编程:char a[N];int i;for(i=0;i<m;i++) a[i]=w[i];while(w[i]) {w[i-m]=w[i];i++;}i--;m--;for(;m>=0;m--;i--) w[i]=a[m];47填空:(1) FILE * (2) fp (3)ch改错:(1)s[j++]=s[i];(2) s[j]= '\0';编程:for(j=0;j<M;j++)b[n]=s[j][i];48填空;(1)File * (2) fclose(fp) (3) fp 改错;(1)t=(STU*)calloc(sizeof(STU),m); (2) t[k]=b[j];编程;int i,t,j=0,*p=a;t=p[0];for(i=0;i<=n;i++)if(t==p[i]);else{a[j]=t;t=p[i];j++;}if(i>=n)a[j]=t;return j;49填空:(1)"rb" (2)> (3)fwrite改错:(1)p=s; (2) ; (缺分号)编程:int i;for(i=0;j<M;i++) b[i]=0;for(i=0;i<N;i++)if(a[i]>=100)b[10]++;else b[a[i]/10]++;50填空:(1)filename (2 ) fp (3) fp改错:(1)p=(NODE*)malloc(sizeof(NODE)); (2)return h;编程:int i,n=0;for(i=0;i<strlen(s);i++){if(s[i]>=’ a’&&s[i]<=’ z’&&s[i+1]=’ ’||s[i+1]==’\0’) n++;}。
计算机二级c语言最新考试真题2024答案
计算机二级c语言最新考试真题2024答案一、选择题在C语言中,以下哪个关键字用于定义一个函数?A. classB. voidC. structD. enum答案:B以下哪个符号在C语言中用作字符串的结束标志?A. \0B. \nC. \tD. \r答案:A在C语言中,要读取一个整数并存储到变量中,应使用哪个函数?A. getchar()B. scanf()C. printf()D. fgets()答案:B以下哪项不是C语言的基本数据类型?A. intB. floatC. stringD. char答案:C在C语言中,数组名表示的是?A. 数组的首地址B. 数组的长度C. 数组的第一个元素D. 数组的所有元素答案:A以下哪个循环结构在C语言中用于至少执行一次循环体?A. for循环B. while循环C. do-while循环D. 以上都不是答案:C在C语言中,指针变量主要用来存储什么?A. 整数值B. 浮点数值C. 内存地址D. 字符串答案:C以下哪个头文件在C语言中用于标准输入输出函数?A. <stdlib.h>B. <string.h>C. <stdio.h>D. <math.h>答案:C(注意:由于选择题通常包含多个小题,以上仅列出了部分小题作为示例。
)二、编程题(编程题通常要求考生编写C语言程序来解决特定问题,以下提供几个编程题示例及解题思路。
)编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
解题思路:定义一个函数isPrime,用于判断一个整数是否为素数。
在isPrime函数中,使用循环从2到该数的平方根(包含)进行遍历,检查是否存在能整除该数的因子。
如果存在因子,则返回0(表示不是素数);否则返回1(表示是素数)。
在主函数中,读取用户输入的整数,并调用isPrime函数进行判断,然后输出结果。
从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
计算机二级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语言》上机操作试题及答案计算机二级考试是全国计算机等级考试,四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
下面是店铺收集整理的计算机二级《C语言》上机操作试题及答案,仅供参考,希望能够帮助到大家。
(1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA(2)下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的'(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)(4)下列叙述中正确的是( )。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是( )。
A.控制流B.事件驱动C.模块调用D.数据流(6)在软件开发中,需求分析阶段可以使用的工具是( )。
A.N—s图B.DFD图C.PAD图D.程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性B.分类性C.多态性D.标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一B.一对多C.多对一D.多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。
计算机二级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上机考试题库及答案
计算机二级C上机考试题库及答案一、选择题1. 下面哪个不是C语言的关键字?A. intB. charC. doubleD. if答案:C2. C语言中,声明int a[10]; 表示的是什么类型的变量?A. 整型数组B. 字符型数组C. 浮点型数组D. 无类型数组答案:A3. 以下哪个函数用于从标准输入中读取一个字符?A. getchar()B. putchar()C. printf()答案:A4. 下面哪个运算符用于取两个操作数的余数?A. +B. -C. *D. %答案:D5. C语言中,用于判断两个数是否相等的运算符是?A. >B. <C. ==D. !=答案:C二、编程题1. 输出斐波那契数列的前20项。
```c#include <stdio.h>int n, i;long long t1 = 0, t2 = 1, nextTerm;printf("斐波那契数列的前20项:\n");for (i = 1; i <= 20; ++i) {printf("%lld, ", t1);nextTerm = t1 + t2;t1 = t2;t2 = nextTerm;}return 0;}```三、简答题1. C语言中的指针是什么?请简要说明指针的概念和作用。
答:C语言中,指针是一个用来存储内存地址的变量。
指针可以指向内存中的任何数据类型,包括整型、字符型、结构体等。
指针的作用主要有两点:一是可以通过指针直接访问、修改内存中的数据;二是可以动态地分配内存空间,提高程序的灵活性和效率。
2. 请简要说明C语言中的结构体是什么,以及它的作用及特点。
答:C语言中的结构体是一种自定义的数据类型,用于将不同类型的数据组合在一起形成一个逻辑整体。
结构体可以包含不同类型的成员变量,可以根据需要定义不同结构体类型的变量。
结构体的作用主要有两点:一是可以方便地管理和操作多个相关的变量;二是可以定义自己需要的数据类型,提高程序的可读性和可维护性。
二级c语言上机考试题库答案
二级c语言上机考试题库答案1. 题目:编写一个C语言程序,计算并输出两个整数的和。
```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverse(char str[]) {int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("反转后的字符串为:");reverse(str);printf("\n");return 0;}```3. 题目:编写一个C语言程序,计算并输出一个3x3矩阵的转置矩阵。
```c#include <stdio.h>#define ROWS 3#define COLS 3void transposeMatrix(int matrix[ROWS][COLS], inttransposed[COLS][ROWS]) {for (int i = 0; i < ROWS; i++) {for (int j = 0; j < COLS; j++) {transposed[j][i] = matrix[i][j];}}}void printMatrix(int matrix[ROWS][COLS]) {for (int i = 0; i < ROWS; i++) {for (int j = 0; j < COLS; j++) {printf("%d ", matrix[i][j]);}printf("\n");}}int main() {int matrix[ROWS][COLS] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int transposed[COLS][ROWS];transposeMatrix(matrix, transposed);printf("原始矩阵:\n");printMatrix(matrix);printf("转置矩阵:\n");printMatrix(transposed);return 0;}```4. 题目:编写一个C语言程序,实现冒泡排序算法。
全国计算机二级c语言上机练习题及答案(二)
全国计算机二级c语言上机练习题及答案(二)计算机二级C上机练习题汇总(二)第四套(1)填空题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。
函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include#include#define N 8typedef struct{ char num[10];int year,month,day ;}STU;/**********found**********/___1___ fun(STU *std, char *num){ int i; STU a={"",9999,99,99};for (i=0; i<="" p="">/**********found**********/if( strcmp(___2___,num)==0 )/**********found**********/return (___3___);return a;}main(){ STU std[N]={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333",19 84,9,1},{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,1 1,15},{"777777",1983,6,22},{"888888",1984,8,19}};STU p;char n[10]="666666";p=fun(std,n);if(p.num[0]==0)printf("\nNot found !\n");else{ printf("\nSucceed !\n ");printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day);}}第1 处:STU fun(STU *std, char *num)第2 处:if( strcmp(std[i].num,num)==0 )第3 处:return (std[i]);(2)改错题给定程序modi.c中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t 所指的数组中。
计算机等级考试-二级C语言上机考试题库及答案
1.填空给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.c中不得增行或删行,也不得更改程序的结构!void check();/**********found**********/int fun(___1___ *std){/**********found**********/___2___ *fp; int i;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\nOutput data to file !\n");for(i=0; i<N; i++)/**********found**********/fwrite(&std[i], sizeof(STYPE), 1, ___3___);fclose(fp);return (1);}修改给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
例如:当s中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。
请改正程序中的错误,使他能得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun (char *s, char *t){ int i, sl;sl = strlen(s);/************found************/for( i=0; i<=s1; i ++)t[i] = s[i];for (i=0; i<sl; i++)t[sl+i] = s[sl-i-1];/************found************/t[sl] = '\0';}程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。
计算机二级c语言上机题库,最新题库,绝对准确
二级 C_第1套上机题 【参考答案】求ss所指字符串数组中长度最短 (1) M (2) < (3) k 【参考答案】小写字母全部改为对应的大写字母。 (1)if(( tt[i]>='a')&&( tt[i] <= 'z')) (2)tt[i]-=32; 【参考答案】大于1小于整数m的非素数存入xx void fun( int m, int *k, int xx[] ) { int i,j,n=0; for(i=4;isno (2) ->name (3) &t 【参考答案】用递归算法求形参a的平方根 (1)double fun(double a,double x0) (2)if(fabs(x1-x0)>=0.00001) 【参考答案】把高于等于平均分的学生数据放在b所指的数组中 double fun( STREC *a, STREC *b, int *n ) { int i; double av=0.0; *n=0; for(i=0;i二级 C_第5套上机题 参考答案】将存放学生数据的结构体数组,按姓名的字典序(从小到大)
排序。 (1) struct student (2) n-1 (3) a[i].name,a[j].name 【参考答案】从p所指字符串中找出ASCII码值最大的字符 (1)q=p+i; (2)while(q>p) 【参考答案】把指定分数范围内的学生数据放在b所指的数组中, int fun( STREC *a,STREC *b,int l, int h ) { int i,j=0; for(i=0;iif(a[i].s>=l&&a[i].s<=h) /*将分数高于l,低于h的学生记录存入结构体数组b中*/ b[j++]=a[i]; return j; /*返回分数范围内的学生人数*/ } 二级 C_第6套上机题 【参考答案】将s所指字符串中的所有数字字符移到所有非数字字符之后 (1)j++或j+=1或++j或j=j+1 (2)s[i]=t1[i] (3) j 【参考答案】冒泡法对6个字符串进行升序排列。 (1)for (j = i + 1; j < 6; j++) (2)*(pstr + i) = *(pstr + j) ; 【参考答案】求ss所指字符串中指定字符的个数 int fun(char *ss, char c) { int i=0; for(;*ss!='\0';ss++) if(*ss==c) i++;/*求出ss所指字符串中指定字符的个数*/ return i; } 二级 C_第7套上机题 【参考答案】e的值为1e-3,函数的返回值为2.985678 (1) 0 (2) i++或++i或i+=1或i=i+1 (3)2.0*i 【参考答案】将s所指字符串的正序和反序进行连接 (1)void fun ( char *s , char *t ) (2)t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0; 【参考答案】将s所指字符串中除了下标为奇数同时ASCII值 void fun(char *s, char t[]) { int i,j=0,n; n=strlen(s); for(i=0;iscore[i] (3) a 【参考答案】从N个字符串中找出最长的串,并将其地址作为函数值返回 (1)char *fun(char (*sq)[M]) (2)return sp; 【参考答案】当a=45,b=12,调用该函数后c=2415;将a、b中的两个 两位正整数合并成一个新的整数放在c中 void fun(int a, int b, long *c) { *c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000; } 二级 C_第9套上机题 【参考答案】将形参a中的数据进行修改,把修改后的数据作为函数值返 回主函数进行输出10001、"ZhangSan"、95、80、88,修改后的数据应为 :10002、"LiSi"、96、。 (1) struct student (2) a.name (3) a.score[i] 【参考答案】删除数列中值为x的元素。变量n中存放数列中元素的个数 (1)if(p==n) return -1; (2)a[i]=a[i+1]; 【参考答案】 void fun(int a, int b, long *c) { *c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000; } 二级 C_第10套上机题 【参考答案】在形参s所指字符串中的每个数字字符之后插入一个*号 (1) && (2) 0或'\0' (3) s[j]或*(s+j) 【参考答案】根据整型形参m若m的值为5,则应输出1.463611。 (1)for(i=2;i<=m;i++) (2)y+=1.0/(i*i);或y+=(double)1.0/(i*i) 【参考答案】实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中 void fun ( int a[3][3], int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/ } 二级 C_第11套上机题 【参考答案】判断形参s所指字符串是否是"回文"(Palindrome) (1)s (2)-- (3)return 0 【参考答案】求出如下分数列的前n项之和若n=5,则应输出8.39166 (1)double fun(int n) (2)s=s+(double)a/b; 【参考答案】大于整数m且紧靠m的k个素数存入所指的数组中。 例如,若输入17,5,则应输出19、23、29、31、37。 void fun(int m,int k,int xx[]) { int i,j,n; for(i=m+1,n=0;n数,循环k次,即找出紧靠m的
