二级C上机题1.docx
- 文档编号:6986872
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:89
- 大小:53.13KB
二级C上机题1.docx
《二级C上机题1.docx》由会员分享,可在线阅读,更多相关《二级C上机题1.docx(89页珍藏版)》请在冰豆网上搜索。
二级C上机题1
二级C_第1套上机题
一、程序填空题
下列给定程序中,函数fun的功能是:
求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。
ss所指字符串数组中共有M个字符串,且串长小于N。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)M
(2)< (3)k
二、程序修改题
下列给定程序中函数fun的功能是:
将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。
例如,若输入"Ab,cD",则输出"AB,CD"。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)if((tt[i]>='a')&&(tt[i]<='z'))
(2)tt[i]-=32;
三、程序设计题
编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:
4 6 8 9 10 12 14 15 16。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(intm,int*k,intxx[])
{
inti,j,n=0;
for(i=4;i /*找出大于1小于整数m的非素数*/ {for(j=2;j if(i%j==0)break; if(j } *k=n; /*返回非素数的个数*/ } 二级C_第2套上机题 一、程序填空题 函数fun的功能是: 统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)j=2 (2)i (3)j 二、程序修改题 数列中,第一项为3,后一项都比前一项的值增5。 下列给定程序中,函数fun的功能是: 计算前n(4 在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回。 例如,当n的值为20时,该数列为3、8、13、18、23、28、…、93、98,符合此条件的累加值应为42、126、366、570、1010。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)inti,j=0,k,sum; (2)if(sum%4==2) 三、程序设计题 请编写函数fun,其功能是: 计算并输出下列多项式的值, S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) 例如,若主函数从键盘给n输入8后,则输出为S=0.662872。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 doublefun(intn) { inti; doubles=0.0; for(i=1;i<=n;i++) s=s+(1.0/(2*i-1)-1.0/(2*i));/*计算S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)*/ returns; } 二级C_第3套上机题 一、程序填空题 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。 函数fun的功能是: 对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。 例如,若b所指变量t中的学号、姓名和三门课的成绩依次是: 10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为: 10004、"LiJie"、93、85、87。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)->sno (2)->name (3)&t 二、程序修改题 下列给定程序中函数fun的功能是: 用递归算法求形参a的平方根。 求平方根的迭代公式如下: 例如,a为2时,平方根值为: 1.414214。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构! 【参考答案】 (1)doublefun(doublea,doublex0) (2)if(fabs(x1-x0)>=0.00001) 三、程序设计题 学生的记录由学号和成绩组成。 N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是: 把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 doublefun(STREC*a,STREC*b,int*n) { inti; doubleav=0.0; *n=0; for(i=0;i av=av+a[i].s; av=av/N;/*求平均值*/ for(i=0;i if(av<=a[i].s) {b[*n]=a[i];*n=*n+1;}/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/ returnav;/*返回平均分*/ } 二级C_第4套上机题 一、程序填空题 给定程序中,函数fun的功能是: 利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。 ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)i (2)ps[j] (3)tp 二、程序修改题 已知一个数列从0项开始的前3项: 0、0、1,以后的各项都是其相邻的前3项之和。 下列给定的程序中,函数fun的功能是: 计算并输出该数列前n项的平方根之和sum。 n的值通过形参传入。 例如,当n=10时,程序的输出结果应为23.197745。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)doublefun(intn) (2)returnsum; 三、程序设计题 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 S=1+x+x2/2! +x3/3! +…+xn/n! 例如,当n=10,x=0.3时,函数值为1.349859。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 doublefun(doublex,intn) { inti; doubles=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i;/*各项中的阶乘*/ s=s+pow(x,i)/s1;/*按公式求出*/ } returns; } 二级C_第5套上机题 一、程序填空题 程序通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。 函数fun的功能是: 将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)structstudent (2)n-1 (3)a[i].name,a[j].name 二、程序修改题 下列给定程序中函数fun的功能是: 从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。 例如,调用fun函数之前给字符串输入“ABCDeFGH”,调用后字符串中的内容应为“eABCDFGH”。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构! 【参考答案】 (1)q=p+i; (2)while(q>p) 三、程序设计题 学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。 请编写函数fun,其功能是: 把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是60、69,则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据。 主函数中把60放在low中,把69放在heigh中。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 intfun(STREC*a,STREC*b,intl,inth) { inti,j=0; for(i=0;i if(a[i].s>=l&&a[i].s<=h) /*将分数高于l,低于h的学生记录存入结构体数组b中*/ b[j++]=a[i]; returnj;/*返回分数范围内的学生人数*/ } 二级C_第6套上机题 一、程序填空题 下列给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。 例如,s所指的字符串为"def35adh3kjsdf7",执行后结果为"defadhajsdf3537"。 请在程序的下画线处填入正确的内容把下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)j++或j+=1或++j或j=j+1 (2)s[i]=t1[i] (3)j 二、程序修改题 下列给定程序中函数fun的功能是: 用冒泡法对6个字符串进行升序排列。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)for(j=i+1;j<6;j++) (2)*(pstr+i)=*(pstr+j); 三、程序设计题 编写函数fun,其功能是: 求ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符为1,则输出3。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 intfun(char*ss,charc) { inti=0; for(;*ss! ='\0';ss++) if(*ss==c) i++;/*求出ss所指字符串中指定字符的个数*/ returni; } 二级C_第7套上机题 一、程序填空题 下列给定程序中,函数fun的功能是计算下式 直到 ,并将计算结果作为函数值返回。 例如,若形参e的值为1e-3,函数的返回值为2.985678。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)0 (2)i++或++i或i+=1或i=i+1 (3)2.0*i 二、程序修改题 下列给定程序中函数fun的功能是: 将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。 例如,当s所指字符串为: "ABCD"时,t所指字符串中的内容应为: "ABCDDCBA"。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构! 【参考答案】 (1)voidfun(char*s,char*t) (2)t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0; 三、程序设计题 编写函数fun,其功能是: 将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串的内容为: "ABCDEFG12345",其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。 最后t所指数组中的内容应为: "135"。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 voidfun(char*s,chart[]) { inti,j=0,n; n=strlen(s); for(i=0;i if(i%2! =0&&s[i]%2! =0) {t[j]=s[i];/*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j++; } t[j]='\0';/*最后加上结束标识符*/ } 二级C_第8套上机题 一、程序填空题 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。 函数fun的功能是: 将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。 例如,a所指变量s中的学号、姓名和三门课的成绩依次是: 10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为: 10002、"LiSi"、96、81、89。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)structstudent* (2)a->score[i] (3)a 二、程序修改题 下列给定程序中函数fun的功能是: 从N个字符串中找出最长的串,并将其地址作为函数值返回。 各字符串在主函数中输入,并放入一个字符串数组中。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构! 【参考答案】 (1)char*fun(char(*sq)[M]) (2)returnsp; 三、程序设计题 编写函数fun,其功能是: 将a、b中的两个两位正整数合并成一个新的整数放在c中。 合并的方式是: 将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。 例如,当a=45,b=12,调用该函数后c=2415。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 voidfun(inta,intb,long*c) { *c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000; } 二级C_第9套上机题 一、程序填空题 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。 函数fun的功能是: 将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。 例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是: 10001、"ZhangSan"、95、80、88,修改后的数据应为: 10002、"LiSi"、96、81、89。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)structstudent (2)a.name (3)a.score[i] 二、程序修改题 假定整数数列中的数不重复,并存放在数组中。 下列给定程序中函数fun的功能是: 删除数列中值为x的元素。 变量n中存放数列中元素的个数。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构! 【参考答案】 (1)if(p==n)return-1; (2)a[i]=a[i+1]; 三、程序设计题 编写函数fun,其功能是: 将两个两位数的正整数a、b合并成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 例如,当a=45,b=12时,调用该函数后,c=1524。 注意: 部分源程序在文件PROG1.C中。 数据文件IN.DAT中的数据不得修改。 请勿动改主函数的main和其它函数中的任何内容,仅在函数fun的花括号填入你编写的若干语句。 【参考答案】 voidfun(inta,intb,long*c) { *c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000; } 二级C_第10套上机题 一、程序填空题 下列给定程序中,函数fun的功能是: 在形参s所指字符串中的每个数字字符之后插入一个*号。 例如,形参s所指的字符串为"def35adh3kjsdf7",执行后结果为"def3*5*adh3*kjsdf7*" 注意: 部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)&& (2)0或'\0' (3)s[j]或*(s+j) 二、程序修改题 下列给定程序中函数fun的功能是: 根据整型形参m,计算如下公式的值。 例如,若m的值为5,则应输出1.463611。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)for(i=2;i<=m;i++) (2)y+=1.0/(i*i);或y+=(double)1.0/(i*i) 三、程序设计题 编写函数fun,其功能是: 实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。 计算结果在main函数中输出。 例如,输入下面的矩阵: 其转置矩阵为: 程序输出: 注意: 部分源程序在文件PROG1.C中。 请勿请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 voidfun(inta[3][3],intb[3][3]) { inti,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套上机题 一、程序填空题 给定程序中,函数fun的功能是: 判断形参s所指字符串是否是"回文"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。 "回文"是正读和反读都一样的字符串(不区分大小写字母)。 例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)s (2)-- (3)return0 二、程序修改题 下列给定程序中,函数fun的功能是: 求出如下分数列的前n项之和。 和值通过函数值返回main函数。 例如,若n=5,则应输出8.391667。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 【参考答案】 (1)doublefun(intn) (2)s=s+(double)a/b; 三、程序设计题 请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是: 将大于整数m且紧靠m的k个素数存入所指的数组中。 例如,若输入17,5,则应输出19、23、29、31、37。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 【参考答案】 voidfun(intm,intk,intxx[]) { inti,j,n; for(i=m+1,n=0;n {for(j=2;j if(i%j==0)break; if(j>=i)/*如果是素数,放入数组xx中*/ xx[n++]=i; } } 二级C_第12套上机题 一、程序填空题 函数fun的功能是: 统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、c3返回主函数。 例如,当n=123114350时,结果应该为: c1=3c2=1c3=2。 注意: 部分源程序在文件BLANK1.C中。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 【参考答案】 (1)n%10 (2)break (3)break 二、程序修改题 下列给定程序中,函数fun实现的功能是: 统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。 例如,若输入无符号整数30800,则数字值为0的位的个数为3,各位上数字值最大的是8。 请改正函数fun中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构。 【参考答案】 (1)if(t==0) (2)*zero=count; 三、程序设计题 请编写函数fun,其功能是: 计算并输出下列多项式的值。 例如,在主函数中从键盘为n输入50后,输出为S=1.718282。 注意: 要求n的值在大于1但不大于100之间。 部分源程序在文件PROG1.C中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 上机