江西计算机省二级试题及答案二级C语言上机题库.docx
- 文档编号:24232850
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:180
- 大小:133.14KB
江西计算机省二级试题及答案二级C语言上机题库.docx
《江西计算机省二级试题及答案二级C语言上机题库.docx》由会员分享,可在线阅读,更多相关《江西计算机省二级试题及答案二级C语言上机题库.docx(180页珍藏版)》请在冰豆网上搜索。
江西计算机省二级试题及答案二级C语言上机题库
二级C语言上机考试复习资料,共有50套题目
一、程序填空题
1、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如:
b所指变量t中的学号、姓名、和三门课的成绩依次是:
10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为:
10004、"LiJie"、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
structstudent{
longsno;
charname[10];
floatscore[3];
};
voidfun(structstudent*b)
{
/**********found**********/
b__1__=10004;
/**********found**********/
strcpy(b__2__,"LiJie");
}
main()
{structstudentt={10002,"ZhangQi",93,85,87};
inti;
printf("\n\nTheoriginaldata:
\n");
printf("\nNo:
%ldName:
%s\nScores:
",t.sno,t.name);
for(i=0;i<3;i++)printf("%6.2f",t.score[i]);
printf("\n");
/**********found**********/
fun(__3__);
printf("\nThedataaftermodified:
\n");
printf("\nNo:
%ldName:
%s\nScores:
",t.sno,t.name);
for(i=0;i<3;i++)printf("%6.2f",t.score[i]);
printf("\n");
}
2、给定程序中,函数fun的功能是计算下式
例如,若形参e的值为1e-3,函数的返回值2.985678。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
doublefun(doublee)
{inti;doubles,x;
/**********found**********/
s=0;i=__1__;
x=1.0;
while(x>e){
/**********found**********/
__2__;
/**********found**********/
x=(2.0*i-1)/((__3__)*(2.0*i));
s=s+x;
}
returns;
}
main()
{doublee=1e-3;
printf("\nTheresultis:
%f\n",fun(e));
}
3、给定程序中,函数fun的功能是:
将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。
例如,形参s所指的字符串为:
def35adh3kjsdf7。
执行结果为:
defadhkjsdf3537。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
voidfun(char*s)
{inti,j=0,k=0;chart1[80],t2[80];
for(i=0;s[i]!
='\0';i++)
if(s[i]>='0'&&s[i]<='9')
{
/**********found**********/
t2[j]=s[i];___1___;
}
elset1[k++]=s[i];
t2[j]=0;t1[k]=0;
/**********found**********/
for(i=0;i /**********found**********/ for(i=0;i<___3___;i++)s[k+i]=t2[i]; } main() {chars[80]="ba3a54j7sd567sdffs"; printf("\nTheoriginalstringis: %s\n",s); fun(s); printf("\nTheresultis: %s\n",s); } 4、给定程序中,函数fun的功能是: 有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。 例如,若N=3,有下列矩阵: 123 456 789计算结果为 100 650 10149 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #defineN4 /**********found**********/ voidfun(int(*t)___1___) {inti,j; for(i=1;i {for(j=0;j { /**********found**********/ ___2___=t[i][j]+t[j][i]; /**********found**********/ ___3___=0; } } } main() {intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j; printf("\nTheoriginalarray: \n"); for(i=0;i {for(j=0;j printf("\n"); } fun(t); printf("\nTheresultis: \n"); for(i=0;i {for(j=0;j printf("\n"); } } 5、给定程序中,函数fun的功能是: 对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。 例如,形参s所指的字符串为: baawrskjghzlicda,执行后p所指字符数组中的字符串应为: aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include voidfun(char*s,char*p) {inti,j,n,x,t; n=0; for(i=0;s[i]! ='\0';i++)n++; for(i=1;i /**********found**********/ ___1___; /**********found**********/ for(j=___2___+2;j if(s[t]>s[j])t=j; if(t! =i) {x=s[i];s[i]=s[t];s[t]=x;} } for(i=1,j=0;i /**********found**********/ p[j]=___3___; } main() {chars[80]="baawrskjghzlicda",p[50]; printf("\nTheoriginalstringis: %s\n",s); fun(s,p); printf("\nTheresultis: %s\n",p); } 6、给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #defineN8 typedefstructlist {intdata; structlist*next; }SLIST; voidfun(SLIST*p) {SLIST*t,*s; t=p->next;s=p; while(t->next! =NULL) {s=t; /**********found**********/ t=t->___1___; } /**********found**********/ printf("%d",___2___); s->next=NULL; /**********found**********/ free(___3___); } SLIST*creatlist(int*a) {SLIST*h,*p,*q;inti; h=p=(SLIST*)malloc(sizeof(SLIST)); for(i=0;i {q=(SLIST*)malloc(sizeof(SLIST)); q->data=a[i];p->next=q;p=q; } p->next=0; returnh; } voidoutlist(SLIST*h) {SLIST*p; p=h->next; if(p==NULL)printf("\nThelistisNULL! \n"); else {printf("\nHead"); do{printf("->%d",p->data);p=p->next;}while(p! =NULL); printf("->End\n"); } } main() {SLIST*head; inta[N]={11,12,15,18,19,22,25,29}; head=creatlist(a); printf("\nOutputfromhead: \n");outlist(head); printf("\nOutputfromtail: \n"); while(head->next! =NULL){ fun(head); printf("\n\n"); printf("\nOutputfromheadagain: \n");outlist(head); } } 7、给定程序中,函数fun的功能是: 计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。 注意: 要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 123 456 789fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #defineN4 fun(intt[][N],intn) {inti,sum; /**********found**********/ ___1___; for(i=0;i /**********found**********/ sum+=___2___; for(i=0;i /**********found**********/ sum+=t[i][n-i-___3___]; returnsum; } main() {intt[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf("\nTheoriginaldata: \n"); for(i=0;i {for(j=0;j printf("\n"); } printf("Theresultis: %d",fun(t,N)); } 8、给定程序中,函数fun的功能是: 找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当x值为5时,100~999之间各位上数字之和为5的整数有: 104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。 共有15个。 当x值为27时,各位数字之和为27的整数是: 999。 只有1个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include intfun(intx) {intn,s1,s2,s3,t; n=0; t=100; /**********found**********/ while(t<=__1__){ /**********found**********/ s1=t%10;s2=(__2__)%10;s3=t/100; /**********found**********/ if(s1+s2+s3==__3__) {printf("%d",t); n++; } t++; } returnn; } main() {intx=-1; while(x<0) {printf("Pleaseinput(x>0): ");scanf("%d",&x);} printf("\nTheresultis: %d\n",fun(x)); } 9、给定程序中,函数fun的功能是: 将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。 例如,输入一个数: 27638496,新的数: 为739。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include voidfun(unsignedlong*n) {unsignedlongx=0,i;intt; i=1; while(*n) /**********found**********/ {t=*n%__1__; /**********found**********/ if(t%2! =__2__) {x=x+t*i;i=i*10;} *n=*n/10; } /**********found**********/ *n=__3__; } main() {unsignedlongn=-1; while(n>99999999||n<0) {printf("Pleaseinput(0 ");scanf("%ld",&n);} fun(&n); printf("\nTheresultis: %ld\n",n); } 10、给定程序中,函数fun的功能是: 将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。 例如,输入一个整数: 27638496,函数返回值为: 64862。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include unsignedlongfun(unsignedlongn) {unsignedlongx=0;intt; while(n) {t=n%10; /**********found**********/ if(t%2==__1__) /**********found**********/ x=__2__+t; /**********found**********/ n=__3__; } returnx; } main() {unsignedlongn=-1; while(n>99999999||n<0) {printf("Pleaseinput(0 ");scanf("%ld",&n);} printf("\nTheresultis: %ld\n",fun(n)); } 11、函数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 #defineN9 intfun(inta[],intn) {inti,j; j=0; for(i=0;i /**********found**********/ if(a[i]%2==___1___) { /**********found**********/ a[j]=a[i];___2___; } /**********found**********/ return___3___; } main() {intb[N]={9,1,4,2,3,6,5,8,7},i,n; printf("\nTheoriginaldata: \n"); for(i=0;i printf("\n"); n=fun(b,N); printf("\nThenumberofodd: %d\n",n); printf("\nTheoddnumber: \n"); for(i=0;i printf("\n"); } 12、给定程序中,函数fun的功能是: 求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。 ss所指字符串数组中共有M个字符串,且串长 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #defineM5 #defineN20 intfun(char(*ss)[N],int*n) {inti,k=0,len=N; /**********found**********/ for(i=0;i<___1___;i++) {len=strlen(ss[i]); if(i==0)*n=len; /**********found**********/ if(len___2___*n) {*n=len; k=i; } } /**********found**********/ return(___3___); } main() {charss[M][N]={"shanghai","guangzhou","beijing","tianjing","chongqing"}; intn,k,i; printf("\nTheoriginalstringsare: \n"); for(i=0;i k=fun(ss,&n); printf("\nThelengthofshorteststringis: %d\n",n); printf("\nTheshorteststringis: %s\n",ss[k]); } 13、给定程序的功能是: 从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。 然后将文件的内容读出显示在屏幕上。 文件的读写分别由自定义函数ReadText和WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include voidWriteText(FILE*); voidReadText(FILE*); main() {FILE*fp; if((fp=fopen("myfile4.txt","w"))==NULL) {printf("openfail! ! \n");exit(0);} WriteText(fp); fclose(fp); if((fp=fopen("m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江西 计算机 二级 试题 答案 语言 上机 题库