2006年9月全国计算机等级考试二级c语言上机题汇编

合集下载

计算机二级C语言上机100题

计算机二级C语言上机100题

计算机二级C语言上机100题(含答案)1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

答案: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: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案: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: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案: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: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

2006年9月全国计算机等级考试二级C语言笔试试题及答案(1)

2006年9月全国计算机等级考试二级C语言笔试试题及答案(1)

IT技术>> 计算机等级-资料>> 计算机二级考试>> C 2006年9月全国计算机等级考试二级C语言笔试试题及答案(28)有如下程序#includeusing namespace std;int i=1;class Fun{public;static int i;int value(){return i-1}int value ()const{return i+1;}};int Fun;;i=2;int main(){int i=3;Fun Fun1const Fun fun2;return 0;}若程序的输出结果是:123则程序中下划线处遗漏的语句是______。

A)、cout<B)、cout<C)、cout<D)、cout<(29)有如下程序#includeusing namespace std;class Obj{static int i;public:Obj(){i++;}~Obj(){i--;}static int getVal(){teturn i;}};int Obj::i=0;void f (){Obj ob2;cout<INT&NBSP;MAIN(){Obj obl;F();Obj*ob3=new Obj;cout<GETVAL();Delete ob3;cout<RETURN0;}程序的输出结果是______。

A)、232B)、231C)、222D)、221(30)有如下程序#includeusing namespace std;class Base{protected;Base(){cout<<‟A‟;}Base(char c){cout<};class Derived; public Base{public:Derived(char c ){cout <};int main(){Derived d1(…B‟);return 0;}执行这个程序屏幕上将显示输出______。

全国计算机等级考试二级C语言上机题库(全)

全国计算机等级考试二级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语言机试真题2006年09月

全国计算机二级C语言机试真题2006年09月

二级C语言机试真题2006年09月1、程序填空题1. 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。

请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。

[注意] 部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

[试题源程序]#include<stdio.h>typedef struct{char name[10];int age;)STD;STD fun(STD std[], int n){STD max; int i;/**********found**********/max= ;for(i=1; i<n; i++)/**********found**********/if(max.age<)max=std[i];return max;}main(){STD std[5]={"aaa", 17, "bbb", 16, "ccc", 18, "ddd", 17, "eee", 15};STD max;max=fun(std, 5);printf("\nThe result: \n");/**********found**********/printf("\nName: %s, Age: %d\n", , max.age);}答案:[1] *std[2] std[i].age[3] [解答] 本题是从结构体中找出年龄最大的记录。

填空1:给存放最大者max赋初值,所以应填:*std。

填空2:当前最大者的年龄和结构中所有的年龄进行比较,所以应填:std[i].age。

填空3:输出最大者的姓名和年龄,所以应填:。

2006年9月全国计算机等级考试二级C语言笔试试题及答案(2)

2006年9月全国计算机等级考试二级C语言笔试试题及答案(2)

IT技术>> 计算机等级-资料>> 计算机二级考试>> C 2006年9月全国计算机等级考试二级C语言笔试试题及答案二、填空题(每空2 分,共30 分)请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。

(1)下列软件系统结构图的宽度为 [1] 。

(2) [2] 的任务是诊断和改正程序中的错误。

(3)一个关系表的行为 [3] 。

(4)按“行进后出”原则组织数据的数据结构是 [4] 。

(5)数据结构分为线性结构和非线性结构,带链的队列属于 [5] 。

(6)若有定义语句:int*a,b;,则变量b 的数据类型是 [6] 。

(7)已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i-1 的单元,其中1≤i<n。

例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a中元素为2,3,4,4。

请将语句补充完整:For(int i=0;i(8)已知递归函数f 的定义如下:int f (int n){If(n<=1)return 1;//递归结束情况else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是 [8] 。

(9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是 [9] 。

#includeusing namespace std;class Foo{public:Foo(int X){cout <<’A”}Foo(){}};int main()Foo f[3],g(3);return 0;}(10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。

#includeUsing namespace atd;Class Foo{int value;public:Foo():value(0){}Void setvalue(int value){ [10] =value; //给Foo 的数据成员value 赋值}void print(){cout<};Int main(){Foo f;f.setvalue(42);f.print();retum0;}(11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 [11] 。

二级C语言上机考试100套真题答案(背诵版)

二级C语言上机考试100套真题答案(背诵版)

二级C语言上机考试100套真题答案(背诵版)被二级上机考试困扰,本人归纳出来的索引小抄(怕被逮,拿来背也是可以的),本人就此过了二级。

归纳简单易懂,抄时查看方便。

重点:你放心,别担心里边的题错啥的,本人细心总结的,共100题,每题都是准确的!!检索方法:共三题(填空,改错,程序),按每题的第一个字来检索,一定是第一个字,所以三题就是三个字。

重点是但这里的每套题里面才两个字,那是为了方便(因为程序题答案太长),适合要求低分的同学。

三字的我也会上传在我的文档里面。

重点:一定要下载检索表,按首字来查找,方便快速找题!!第一套1将1 struct student2 n-13 a[i].name,a[j].name 2在1 q=p+i; 2 while(q>p)第二套1删1q 2 next 3 next2用1 p=j; 2 p=i;第三套1逆1 n/2 2 i 3 a[n-i-1]2将1 n=*p-'0'; 2 n=n*8+*p-'0';第四套1在1 NULL 2 n 3 head,ch2删1. for(i=0,t=0;p[i];i++)2. c[t]='\0';第五套1.计(1) 0 (2) n (3) (t*t)2统(1)for(i=0;str[i];i++) (2) if(substr[k+1]= ='\0')第六套1.将1 s[i] 2 k 3 02.将1 while(*w) 2 if(*r = =*p)第七套1 程序1 struct student *2 a->score[i]3 a2.从1 char *fun(char (*sq)[M])2 return sp;第八套1.将1 1 2 i 3 a[p+i]2.把1 float k; 2 if(*a<*c)第九套1.计1 x[i]/N 2 j++ 3 i++2.统1 num[k]=0; 2 switch(*s)第十套1程序 1 struct student 2 /doc/177712401.html, 3 a.score[i] 2删1 if(p= =n) return-1; 2 a[i]=a[i+1];第十一套1.计1 s/N 2 j++ 3 -12.读 1 #include 2 void upfst (char *p)第十二套1.将1 fp 2 fclose(fp) 3 fname2.将1 for(i=j+1;i<="">1.找1 a[0][i] 2 < 3 x,y2.交 1 void fun(int *x,int *y) 2t=*x;*x=*y;*y=t;第十四套1. 函数1 && 2 'A' 3 ch2给1 void fun(int *a) 2 a[j]=a[j-1]; 第十五套1.把1 1 2 s[k] 3 c2.求1 long s=0,t=0; 2 t=t/10;第十六套1.找1 STU 2 std[i].num 3 std[i]2.从1 if(*r==*p){r++;p++;}2 if(*r= ='\0')第十七套1.统1 s[i] 2 '9' 3 *t = n;2.通1 t=*x;*x=y; 2 return(t);第十八套1.有1 i++ 2 m 3 m2.计 1 while((high >= 2)&&(n<10)) 2 yes=0;break;第十九套1.将1 k 2 N-1 3 temp2根1 void fun(int a[][M],int m)2 a[j][k]=(k+1)*(j+1);第二十套1.对1 t=i 2 i 3 02.用1 while(fabs(t)>=num) 2 t=s/n; 第二十一套1.在1 [M] 2 N 3 '\0'2.根1 t=1.0; 2 return(s*2);第二十二套1.将1 k 2 N 3 a[k][i]2读 1 for(i=strlen(t)-1;i;i--) 2if(t[j]>t[j+1])第二十三套1.调1 "r" 2 fs 3 ft2.将1 if(d%2==0) 2 s/=10;第二十四套1程序(1) a (2)/doc/177712401.html,(3)score[i] 2从1 s[j++]=s[i]; 2 s[j]='\0';第二十五套1.首1 a[i] 2 a[i] 3 02.为1 y=1; 2 d=a-i;第二十六套1.最1 [N] 2 i 3 i+12.将1 void fun(int m, int k)2 aa[i]=m%k;3 printf(“%d”,aa[i-1]);第二十七套1.计1 1.0 2 -1 3 t2从1 for(i=1;i<=3;i++)2 if(k>=0&&k<=6)第二十八套1.计1 sum=0 2 t[i][i] 3 12.用1 double r;2 while(fabs(n-m)>0.001)第二十九套1.有1 0 2 j-- 3 j2.计1 double f(double x) 2 return s;第三十套1.把第一处 1 第二处 j++ 第三处 j2.求1 t=a;a=b;b=t; 2 return (b);第三十一套1.在1 N 2 k 3 ss[i]2.逐1 int k=0; 2 while(*p||*q)第三十二套1.把1 x 2 p 3 s2.计1 long k=1; 2 num/=10第三十三套1.在1 N 2 substr 3 02.求 1 fun(int x,int y,int z) 2return j;第三十四套1.在1 N 2 i 3 -12.从1 a2=k/10; 2 return i;第三十五套1.统1 *n 2 next 3 head2.求1 a=NULL; 2 if(*r==*p)第三十六套1.函数1 char 2 ch<='9' 3 '0'2.将1 b[k]=*p; 2 b[k]='';k++;第三十七套1.把1 a[i]%2 2 a[j] 3 j2.按1 fun(int n) 2 if(n==1)第三十八套1.利1 i 2 ps[j] 3 tp2.计1 double fun(int n) 2 return sum; 第三十九套1.计1 *av 2 i 3 x[j];2.根 1 float fun(int n) 2for(i=2;i<=n;i++)第四十套1.将1 j++ 2 s[i]=t1[i] 3 j2.用 1 for(j=i+1;j<6;j++) 2*(pstr+i)=*(pstr+j);第四十一套1.将1 48 2 s++ 3 sum2.计1 if((k%13==0││(k%17==0))2 }第四十二套1给定1 p->next 2 q 3 p->next2将1 while(*s) 2 s++;第四十三套1 判1 02 ||3 12根1 t=t-1.0/i; 2 return t;第四十四套将1 N 2 N-1 3 02计1 s=s+(n+1.0)/n; 2 return t;第四十五套1 2、1 next2 NULL3 r2计1 r=t; 2 r=t;第四十六套1将1 *s 2 s++ 3 n2由1 { int j,c=0;float xa=0.0;2 if(x[j]>=xa)第四十七套1计1 x 2 n 3 fabs(t)2求1 for(i=1;i<=y;i++) 2 t=t%1000;第四十八套1计1 data2 next3 head2将1 while(*r) 2 *a=*r;a++;r++; 第四十九套1把1 t,s 2 s[i] 3 02找1 if(i%k==0) 2 if(k>=i)第五十套1将1 j 2 k 3 p2首1 while(i<="" p="">第五十一套1计1 0 2 i++ 3 2.0*i2将1 void fun(char*s, char *t) 2 t[2*d]='\0';第五十二套1在1 j 2 0 3 i++2根 1 for(i=2;i<=m;i++) 2y-=1.0/(i*i);第五十三套1将1 std[] 2 PERSON 3 std2将1 int k,q,i; 2 pt[i]=str[k][i]; 第五十四套1计1 0.0 2 x[i]/N 3 j++2根 1 double fun(int m) 2for(i=100;i<=m;i+=100)第五十五套1判1 s 2 -- 3 return 02求1 double fun(int n)2 s=s+(double)a/b;第五十六套1.从1 *fw 2 str 3 str2从 1 void fun(long s,long*t) 2s1=s1*10;第五十七套1计1 n++ 2 0 3 s++;2从1 t+=s[k]; 2 *aver=ave;第五十八套1计 1. x=3.0/4; 2 while(x>e) 3x=(2*i+1)/(t*t);2求 1 double fun(int n) 2s=s+(double)a/b;第五十九套1把1 a[i] 2 a[j] 3 a[j]2用 1 switch(g)去掉分号2 case 1:return 1; case 2:return 1;第六十套1有1 [N] 2 t[i][j] 3 t[j][i]2计 1 #define FU(m,n) ((m)/(n))2 return (value);第六十一套1找1 std[i].year 2 std[i] 3 n2读1 IsPrime (int n) 2 if (!(n%i))第六十二套1将1 t [] [N] 2 i=0; i<="">2利 1 fun (int a [], int m)2 else if (m>a [mid])第六十三套1求1 M 2 < 3 k2将1 if (( ' a ' <=tt[i])&&(tt[i]<= ' z ' )) 2 tt[ i ]- =32;第六十四套1对1 i+1 2 k=j 3 t2判1 void fun(char *str, char ch ) 2 if (*str! =ch) 3 str [1]=0;第六十五套1计1 1 2 2*i 3 (-1)2判 1 k++; 2 if (m==k)第六十六套1在1 && 2 0 3 s [j]2根1 for (i =2 ; i<= m; i++) 2 y+=1. 0/( i* i) ;第六十七套1找1 999 2 t/10 3 x2从 1 void fun (long s, long *t)2 while (s>0)第六十八套1将(1)0(2) 10*x (3)n/102将1 *t=0; 2 if (d%2!=0)第六十九套1 甲乙 1 i2 t++ 3count2根1 int fun (int a,int b, int c)2 else return 1;第七十套1统1 (n%10) 2 break 3 break2统1 if (t==0) 2 *zero =count;第七十一套1把1 a[] 2 2 3 i+12按1 sum=0.0; 2 if ((i+1)%5==0)第七十二套1统1 j=2 2 i 3 j2计1 sum =0; j=0; 2 if (sum %4==2) 第七十三套1计1 x 2 n 3 t2计1 d=1 ; s=0 ; 2 d=d/10 ;第七十四套1.计1 1 2 1 3 i2找1 k= i ; 2 c=k%10;第七十五套1给定1 next 2 t->data 3 t2将1 fun (char *a )2 printf ( "%c" , *a);第七十六套1在给1 '\0' 2 0 3 c2计1 double sum =0. 0; 2 sum/=c; 第七十七套1将1 10 2 0 3 x2计1 if (n==0) 2 result *=n--;第七十八套1 给定1 FILE*2 fp3 ch2依1 s [j++]=s [ i ]; 2 s [ j ]= ' \ 0 ' ; 第七十九套110. 1 h - >next 2 p - > next 3 >2求1 p= h - >next; 2 p=p->next;第八十套1 X 1 double2 f 13 f 22 给1 while(p!=NULL) 2 p= p - >next; 第八十一套1 给定1 FILE* fp2 fclose (fp) 3fp2对1 t=calloc(m,sizeof(STU));2 t [k] =b [ j ] ;第八十二套1 x 1 double2 f13 f22比1 char *fun (char *s ,char *t)2 ss++;3 tt++;第八十三套1 程序1 tt2 tt.score [ i ]3 std2求1 m= i ; 2 if ( a [k]>a [m]) m=k; 第八十四套1 程序1 filename2 fp3 fp2 给定 1 p=(NODE*) malloc (sizeof(NODE)); 2 return h;第八十五套1 程序1 "r"2 >3 fwrite2在1 p=s ; 2 while (*p++)第八十六套1 2、1 NODE2 next3 r2将1 if ( i % 2 || s [ i ]%2= =0 )2 t [ j ]= ' \0 ' ;第八十七套1 程序1 fp2 = =3 fp12利1 n=strlen (aa); 2 ch =aa [i];第八十八套1调1 N 2 break 3 n2先1 sum=02 scanf ("%d" , &a [ i ] [ j ]) ;第八十九套1求1 [N] 2 len 3 *n=len2根1 t+=1. 0/ i ; 2 return t;第九十套1求1 ss[i] 2 n+j 3 12将1 if(*p= =' ')2 *(p-1)=toupper(*(p-1));第九十一套1将 1 std[0] 2 std[i].age 3 /doc/177712401.html,2实1 void fun(int *a,int *b)2 t=*b;*b=*a;*a=t;第九十二套1将1 '0' 2 s++ 3 ctod(a)+ctod(b)2分1 void fun ( char *s, int *a, int *b ) 2*a=*a+1; 3 *b=*b+1;第九十三套1找1 0 2 x 3 t++2先1 int i,s1; 2 t[i]=s[s1-i-1];第九十四套1从1 a 2 a 3 b2首1 c=c+32; 2 c=c+5;第九十五章1 给定 1 STYPE2 FILE 3fp2先1 for(i=0;i<="" p="" t[2*s1]="\0"> 第九十六套1 程序1 ->sno2 ->name3 &t2应1 double fun(double a,double x0) 2 if(fabs(x1-x0)>0.00001)第九十七套1找1 *s 2 1 3 k[n]2求1 float fun(int k) 2 return s;第九十八套1将1 1 2 s>0 3 i*102输1 int fun(int n,int xx[][M])2 printf("%d",xx[i][j]);第九十九套1求1 k 2 len 3 ss[i][j]2计1 result *=n--; 2 return result;第一百套1 给1 STU2 score[i]3 &std2求1 if(k>1) 2 elsse if(k= =0)答题方法,例如100题:1填空题例如程序中__1__,对应答案1,把__1__删除填入STU都填完(一般2-3个空)然后编译程序即可。

2006年(秋)江苏二级C语言笔试试卷

江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试二级C 语言程序设计2006 年(秋)笔试试卷(考试时间120 分钟,满分60 分)第一部分计算机基础知识(1)在下列有关集成电路的叙述中,错误的是__________。

A)集成电路的规模是根据其所包含的电子元件数目进行划分的B)大规模集成电路一般以功能部件和子系统为集成对象C)现代集成电路使用的半导体材料主要是硅(Si)D)集成电路技术发展很快,至2005 年初已达到线宽0.001μm 的工艺水平(2)在下列有关通信技术的叙述中,错误的是__________。

A)电视节目的传输目前采用的还都是模拟传输技术B)模拟调制的方法有3 种,即调频、调幅和调相C)数字信号不经过调制就在信道上直接进行传输,称为“基带传输”D)用户使用MODEM 通过电话线上网时,采用的是数字调制技术(3)所谓“变号操作”,是指将一个整数变成绝对值相同但符号相反的另一个整数。

假设使用补码表示的8 位整数,则经过变号操作后,结果为__________。

A)01101010 C)B)00010101 D)01101011(4)若计算机内存中连续 2 个字节的内容其十六进制形式为34 和64,则它们不可能是__________。

A)2 个西文字符的ASCII 码C)1 个16 位整数B)1 个汉字的机内码D)图像中1 个或2 个像素的编码(5)在下列关于指令和指令系统的叙述中,错误的是__________。

A)指令是构成程序的基本单元,它用来规定计算机执行什么操作B)指令由操作码和操作数组成,操作数的个数由操作码决定C)Intel 公司Pentium 系列的各种微处理器,其指令完全不同D)Pentium 处理器的指令系统包含数以百计的不同指令(6)在下列关于BIOS 及CMOS 存储器的叙述中,错误的是__________。

A)BIOS 是PC 机软件最基础的部分,包含POST 程序、CMOS 设置程序、系统自举程序等B)BIOS 存放在ROM 存储器中,通常称为BIOS 芯片,该存储器是非易失性的C)CMOS 中存放着基本输入输出设备的驱动程序和一些硬件参数,如硬盘的数目、类型等D)CMOS 存储器是易失性的,在关机时由主板上的电池供电(7)PC 机的机箱外面常有很多接口,用来连接外围设备。

全国计算机等级考试二级C语言上机考试题库100道

1 if((k%13==0││(k%17==0))
2 }
3. 请编写函数fun,它的功能是:求小于形参n同时能被3和7整除的所有自然数之和的平方根,并作函数的返回值。
double sum=0.0;
int i;
for(i=21;i<=n;i++)
if((i%3= =0)&&(i%7= =0))sum
1 *n 2 next 3 head
2. 给定程序MODI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。
1 a=NULL; 2 if(*r==*p)
2. 给定程序MODI1.C中函数fun的功能是:按以下递推公式求函数值。例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14.
1 fun(int n) 2 if(n==1)
3. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
2给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母顺序的后续字母(但Z转化成A,z转换为a),其它字符不变。
1 while(*s) 2 s++;
3 请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于 等于n-1)的数组元素平移到数组的最后。
1 N 2 substr 3 0
2. 给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。

2006年秋 - 浙江省计算机二级(C语言)真题

2006年秋浙江省高等学校计算机等级考试试卷(二级C)说明:⑴考生应将所有试题的答案填写在答卷上。

其中试题一到试题六请在答卷上的各小题选项的对应位置上填“√”。

⑵请将你的准考证号的后五位填写在答卷右下角的指定位置内;⑶考试时间为90分钟。

试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。

运行示例:Enter characters: f(x,y)=3x+5y-10letter=5, digit=4, other=6【程序】#include <stdio.h>void main( ){ int digit, i, letter, other;(1) ch;digit = letter = other = 0;printf("Enter characters: ");while( (2) != '\n')if( (3) )letter ++;(4) (ch >= '0' && ch <= '9')digit ++;elseother ++;printf("letter=%d, digit=%d, other=%d\n", letter, digit, other);}【供选择的答案】(1) A、* B、floatC、doubleD、char(2) A、(ch = getchar()) B、ch = getchar()C、getchar(ch)D、putchar(ch)(3) A、(ch >= 'a' && ch <= 'z') && (ch >= 'A' && ch <= 'Z')B、(ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')C、ch >= 'a' && ch <= 'Z'D、ch >= 'A' && ch <= 'z'(4) A、if B、elseC、else ifD、if else试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

计算机等级考试二级C语言上机题库(含答案)(精品)

重要说明:本题库为从题中一题一题复制出来工作量大,而且有许多表达式无法在word中快速表示出来(这样会加大工作量)故而省略,或者表达错位,有的地方可能或者肯定会有错,我相信准备参加C语言二级考试的同学应当能够对照参考答案看出来,这是最新版最完整考试题库,相信大家一定都能通过!第一套程序填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

如输入一个数:27638496,新的数为729第一空:{ t=*n%10;第二空:if(t%2!=0)第三空:*n=x;2.程序修改给定程序modi1.c中函数fun的功能是:计算n!。

例如,给n输入5,则输出120.000000。

double fun(int n ){ double result=1.0;/*****found******/if(n==0)return 1.0;while(n>1&&n<170)/*****found******/result*=n--;return result;}程序设计请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。

long fun(char *p){int i,len,t;long x=0;len=strlen(p);if(p[0]==’-‘){ t=-1;len--;p++;}else t=1;while(*p)x=x*10-48+(*p++);return x*t;}第二套1. 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2006年9月全国计算机等级考试二级c语言上机题汇编1、编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。

例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:g fedcba。

试题程序:#include <string.h>#include <conio.h>#include <stdio.h>#define N 81/*注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+i<s+n-1-i来控制)。

由于s+i 中一个地址,因此要注意把它的内容取出再进行换位。

即先进行取内容运算*) */ fun(char *s){ int i=0,t,n=strlen(s);for(;s+i<s+n-1-i;i++){t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;}}main(){ char a[N];clrscr();printf("Enter a string:"); gets(a);printf("The original string is:");puts(a);fun(a);printf("\n");printf("The string after modified:");puts(a);}2、写程序,实现矩阵(3行3列)的转置(即行列互换)。

例如,输入一面的矩阵:程序输出:试题程序:#include <stdio.h>/*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时a[j]在好是与a[j][i]互换,因而只要我位让程序走完矩阵的左上角即可(用for(i=0;i<2;i++)再套for(j=i+1;j<3;j++)来完成左上角的走动。

*/int fun(int array[3][3]){ int i,j,t;for(i=0;i<2;i++)for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){ int i,j;int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};clrscr();for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}fun(array);printf("Converted array:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}}3、请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。

形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶娄这和。

例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。

试题程序。

#include <stdio.h>#define N 20/*注:该题的算法是:用for()循环一步一步地找元素,用if(!a[i]%2)来判断是否是奇数,%运算是求余运算,当对2求余为1时表示原数为奇数,否则为偶数。

*/ fun(int *a,int n,int *odd,int *even){ int i; *even=0;*odd=0;for(i=0;i<n;i++)if(!(a[i]%2))*even+=a[i];else*odd+=a[i];}main(){ int a[N]={1,9,2,3,11,6},i,n=6,odd,even;clrscr();printf("The original data is:\n");for(i=0;i<n;i++) printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}4、要求程序的功能是:把20个随机数存入一个数组,然后输出该数组中的最小值。

其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。

试题程序。

#include <stdio.h>#include <conio.h>#define VSIZE 20int vector[VSIZE];/*注:该题的算法是用一个变量(j)来存储最小值元素的下标,在循环过程中让每个元素都与原最小值元素进行大小比较(if(list[i]<list[j]),如发现更小的则让j 重新拥有最小值元素的下标(j=i)。

*/int fun(int list[],int size){ int i,j=0;for(i=1;i<size;i++)if(list[i]<list[j])j=i;return j;}main(){int i;clrscr();for(i=0;i<VSIZE;i++){vector[i]=rand();printf("Vector[%d]=%6d\n",i,vector[i]);}i=fun(vector,VSIZE);printf("\nMininum:vector[%d]=%6d\n",i,vector[i]);}5、请编一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。

例如:h值为8.32433,则函数返回8.32;h值为8.32533,则函数返回8.33。

试题程序。

#include <stdio.h>#include <conio.h>/*注:h乘以1000后正好是原小数点后第三位做了新数的个位数,然后再进行加5运算时。

如原小数点后第三位为4及以下则加5后还是不能进一位(即四舍),如是5及以上则加5后该位就要向前进一位数(即五入)。

进行加5运算后除10再赋给一个整型变量此时就只有原小数点第二位及以前各位保留在整型变量中,最后再对整型变量除100,这样又出现了两位小数。

该题中,进行四舍五入后一定要赋给一个整型变量才能将不用部分彻底变成0 。

*/float fun(float h){ long t;h=h*1000;t=(h+5)/10;return (float)t/100;}main(){float a;clrscr();printf("Enter a:"); scanf("%f",&a);printf("The original data is:");printf("%f\n\n",a);printf("The result :%6.2f\n",fun(a));}6、编写函数fun,函数的功能是:从字符串中删除指定的字符。

同一字母的大、小写按不同字符处理。

若程序执行时,输入字符串为:turbo c and Borland c++从键盘上输入字符:n,则输出后变为:turbo c ad borlad c++如果输入的字符串不存在,则字符串照原样输出。

试题程序。

#include <stdio.h>#include <conio.h>/*注:该题的算法是让i控制一个一个字符往后走,在移动过程中如果s[i]不是要删的字符,则将其按顺序放到新串中(新串亦是用s来做,只是用k来控制新串的下标,由于要删除一些元素,因此新串的下标总是比原下标i要慢。

因而可用此法即同一字符串变量的方法。

*/int fun(char s[],int c){int i,k=0;for(i=0;s[i];i++)if(s[i]!=c) s[k++]=s[i];s[k]='\0';}main(){ static char str[]="turbo c and borland c++";char ch;clrscr();printf(" :%s\n",str);printf(" :");scanf("%c",&ch);fun(str,ch);printf("str[]=%s\n",str);}7、请编写一个unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的后n-1位的数作为函数值返回。

例如:w值为5923,则函数返回923;w值为923则函数返回23。

试题程序。

#include <conio.h>#include <stdio.h>/* 注:由于unsigned型整数在0-65535这间,只要它大于10000则对10000求余即得出后面4位,否则如果大于1000则对1000求余得出后3位数,这样一层一层往小的判断。

由于return的作用除了返回值以外,还有当执行到return时就跳出该程序,所以可以连续的用if()语句。

*/unsigned fun( unsigned w ){ if(w>=10000) return w%10000;if(w>=1000) return w%1000;if(w>=100) return w%100;return w%10;}main(){ unsigned x;printf( "enter a unsigned integer number :" );scanf( "%u",&x);if(x<10) printf("data error!");else printf ("the result :%u\n", fun(x));}8、编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于lim 的所有素数并放在aa数组中,该函数返回所求出素数的个数。

相关文档
最新文档