复 计算机二级C语言上机试题汇编100套.docx
- 文档编号:12058383
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:32
- 大小:47.53KB
复 计算机二级C语言上机试题汇编100套.docx
《复 计算机二级C语言上机试题汇编100套.docx》由会员分享,可在线阅读,更多相关《复 计算机二级C语言上机试题汇编100套.docx(32页珍藏版)》请在冰豆网上搜索。
复计算机二级C语言上机试题汇编100套
一1各位上为偶数的数去除,输入27638496,输出739。
10。
0。
x。
2if(n==0)。
加分号。
3elset=1;。
while(*p)x=x*10-48+(*p++);。
returnx*t;
二1将形参给定的字符串、整数、浮点数写到文本文件中。
FILE*。
fp。
ch。
2。
s[j++]=s[i];。
s[j]='\0';。
3。
for(i=0;i 三1重写形参filename所指文件中最后一个学生的数据,用新的学生数据覆盖原来数据filename。 fp。 fp。 2Creatlink创建带头结点单链表,为各结点数据域赋0到m-1的值。 p=(NODE*)malloc(sizeof(NODE));。 返回h。 3统计一行字符串中单词的个数,函数值返回。 {intk=1;while(*s){if(*s=='')k++;s++;}returnk;} 四1从形参filename所指的文件中读入学生数据,学号从小到大排序,用二进制方式把排序后的学生数据输出到filename所指的文件中"rb"。 >。 fwrite。 2在字符串的最前端加入n个*号,形成新串,覆盖原串。 长度最长允许79。 p=s;。 while(*p++);。 3统计各年龄段的人数。 0至9岁在d[0]{inti,j;for(i=0;i 五1字符串、整数、浮点数写到文本文件中,用字符串方式逐个读入,调用库函数atoi和atof将字符串转换成相应的整数、浮点数。 FILE*。 fclose(fp)。 fp。 2对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名。 缺少分号。 应用方括号不是圆括号。 3删去一维数组所有相同的数,只剩一个。 一维数组: 2223445666677899101010。 删除后: 2345678910。 inti,j=1,k=a[0];for(i=1;i =a[i]){a[j++]=a[i];k=a[i];}a[j]=0;returnj;} 六1根据形参i的值返回某函数的值。 输x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。 double。 f1。 f2。 2比较两个字符串,将长的字符串的首地址作为函数值返回。 char*fun(char*s,char*t)ss++;。 tt++;。 3移动字符串中的内容,把第1到第m个平移到串的最后,把第m+1到最后的字符移到字符串的前部。 原有: ABCDEFGHIJK,m的值为3,移动后是: DEFGHIJKABC。 {inti;for(i=0;i 七1利用结构体变量存储一名学生的信息。 输出这位学生的信息。 tt。 tt.score[i]。 std。 2求数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]对调。 m=i;。 if(a[k]>a[m])m=k;。 3w是n(n≥2)位的整数,函数求出w的低n-1位的数w值为5923返回923w为923返回23。 {if(w>10000)w%=10000;elseif(w>1000)w%=1000;elseif(w>100)w%=100;elseif(w>10)w%=10;returnw;} 八1将该生的各科成绩都乘以一个系数a。 STU。 score[i]。 &std。 2求k! (k<13)k=10输出: 3628800。 少圆括号。 相等==。 3使数组左下三角元素中的值乘以n。 若n值3a数组值|197||397||238|返回后a数组值为|698||456||121518|{inti,j;for(i=0;i 九1不带头节点单链表从小到大排序。 原: 10、4、2、8、6,排序后: 2、4、6、8、10。 p.next。 q。 p.next。 2将s所指字符串中的字母转换为后续字母(但Z转换为A,z转换为a),其它字符不变while(*s)。 s++;。 3移动一维数组中的内容;数组有n个整数,把下标从0到p(含p,p小于等于n-1)的数组平移到数组的最后。 原始: 1,2,3,4,5,6,7,8,9,10;p的值为3。 移动后: 5,6,7,8,9,10,1,2,3,4。 {inti,j=0,b[N];for(i=p+1;i 十1形参a所指的N×N(规定N为奇数)矩阵是否是"幻方"。 变量row和colum的值初始化为0。 ||。 返回1。 2根据整型形参m,计算如下公式的值。 输入5,输出-0.283333。 t-=1.0/i。 returnt;。 3删除字符串中的所有空格。 输入"asdafaaz67",输出"asdafaaz67"。 {char*p=str;inti=0;while(*p){if(*p! ='')str[i++]=*p;p++;}str[i]=0;} 十一1将带头结点的单向链表逆置。 原链表: 2、4、6、8、10,逆置后: 10、8、6、4、2。 h->next。 0。 r。 2计算s所指字符串中含有t所指字符串的数目。 r=t;。 if(*r==0)。 3计算s所指字符串中含有t所指字符串的数目inti;*b=0;for(i=0;i 十二1将不带头结点的单链表逆置。 原链表: 2、4、6、8、10,逆置后,: 10、8、6、4、2NODE*。 next。 r。 2将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 字符串AABBCCDDEEFF,输出: ABBCDDEFF。 if(i%2||s[i]%2==0)。 t[j]=0;。 3将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 二维数组: 333333334444444455555555一维: 334455334455334455334455。 {inti,j,np=0;for(i=0;i 十三1带头节点的单链表结点数据域中的数据从小到大排序。 原104286排后246810。 h->next。 p->next。 >。 2建带头结点的单链表,随机函数赋值。 求单向链表结点数据域中的最大值。 p=h->next;。 p=p->next; 3将M行N列的二维数组,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 二维: 333333334444444455555555一维: 333333334444444455555555。 {inti,j,k;for(i=0;i 十四1用函数指针指向要调用的函数,并进行调用。 规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。 输出: x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000double。 f1。 f2。 2建立带头结点的单链表。 将单向链表结点数据域为偶数的值累加起来。 p=h->next;p=p->next; 3判断字符串是否为回文? 是,函数返回1,输出: YES,否返回0,输出NO。 字符串LEVEL是回文,而字符串123312就不是回文。 {inti,j=strlen(str);for(i=0;i =str[j-i-1])return0;return1;} 十五1student.dat文件从指定文件中找出指定学号的学生数据,使每门课的分数加3分。 fp。 ==。 fp。 2插入排序法对字符串中的字符从小到大排序。 n=strlen(aa);。 ch=aa[i];。 3N名学生的成绩、带头节点的链表结构中,h指向链表的头节点。 找出学生的最高分。 {doublemax=h->s;STREC*p;p=h->next;while(p){if(p->s>max)max=p->s;p=p->next;}returnmax;} 十六1求形参ss字符串中最长字符串的长度,其余字符串右边用字符*补齐。 ss[i]。 n+j。 1。 2将p所指字符串中每个单词的最后一个字母改成大写。 (空格隔开)。 输入"Iamastudenttotaketheexamination.",输出"IaMAstudenTtOtakEthEexamination."。 int。 加右括号。 3对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 原CEAedca,排后CedcEAa。 {charch;inti,j;for(i=1;i<6;i++)for(j=i+1;j<6;j++){if(*(s+i)<*(s+j)){ ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;}}} 十七1将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。 structstudent。 n-1。 a[i].name,a[j].name。 2在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置;将该字符前的原字符向后顺序移动。 输入: ABCDeFGH,输出: eABCDFGH。 q=p+i;。 while(q>p)。 3结构体数组s,把指定分数范围内的学生数据放在b所指的数组中。 输入分数6069,把分数在60到69的学生数据输出,含60和69。 {inti,j=0;for(i=0;i 十八1将s所有字母字符顺序前移,其他字符顺序后移。 s: asd123fgh543df,处理后: asdfghdf123543。 s[i]。 k。 '\0'。 2将s所指字符串中最后一次出现与t1相同的子串替换成t2所指字符串,形成的新串放在w中。 s: "abcdabfabc",t1: "ab",t2: "99",w: "abcdabf99c"。 while(*w)。 if错写成If。 3将s字符串中ASCII值为奇数的字符删除,串中剩余字符形成新串放在t中。 s: "ABCDEFG12345",输出: "BDF24"。 voidfun(char*s,chart[]){inti,j=0;for(i=0;i 十九1将形参a所指结构体变量s中的数据修改,把a中地址作为函数值返回。 a: 10001、"ZhangSan"、95、80、88,修改后: 10002、"LiSi"、96、81、89。 structstudent*。 a->score[i]。 a。 2从N个字符串中找出最长的串,将其地址作为函数值返回。 char*fun(char(*sq)[M])。 returnsp;。 3将a、b中的两个两位正整数合并形成一个新的整数放在c中。 方式: a的十位和个位数依次放在c的百位和个位,b的十位和个位依次放在c的十位和千位。 a=45,b=12。 后,c=2415。 voidfun(inta,intb,long*c){*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;} 二十1计算x所指数组中N个数的平均值,小于平均值的数据移至数组前部,大于等于平均值移至x的后部。 10个正数4630324061745154826平均值: 30.500000移动后: 3061715264632404548N。 j++。 i=i+1。 2统计字符串中各元音字母的个数。 输入: THIsisaboot输出: 1、0、2、2、0。 num[k]=0;。 switch(*s)。 3求二维数组周边元素之和。 二维数组13579299946999813570值61。 intfun(inta[M][N]){inttot=0,i,j;for(i=0;i 二十一1计算形参x所指数组中N个数的平均值,大于平均值的数据移至数组的前部,小于等于平均值的数据移至x的后部。 10个正数: 4630324061745154826,平均值为: 30.500000移动后的输出为: 4632404548306171526s/N。 j++。 -1。 2读入一个英文文本行,每个单词的第一个字母改成大写,然后输出此文本行。 输入: Iamastudenttotaketheexamination.,输出: IAmAStudentToTakeTheExamination.。 include前漏写了#。 upfst(char*p)。 3求数组周边元素的平均值并作为函数值返给主函数中的s。 a数组中的值为|01279|a=|19745||23831||45682||59141|返回值: 3.375。 doublefun(intw[][N]){inti,j,n=0;doublesum=0;for(i=0;i 二十二1将自然数1~10以及平方根写到名为myfile3.txt的文本文件中fp。 fclose(fp)。 fname 2将n个无序整数从小到大排序。 p=i;。 3将两个两位数的正整数a、b合并形成一个整数放在c中。 a的十位和个位依次放在c的个位和百位上,b的十位和个位放在c数的十位和千位。 a=45,b=12,后,c=2514。 voidfun(inta,intb,long*c){*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);} 二十三1找出N×N矩阵中每列元素中的最大值,按顺序依次存放于形参b所指的一维数组中。 a[0][i]。 <。 x,y。 2交换主函数中两个变量的值。 a值原为8,b值为3。 运行后a3,b8。 int*x,int*y。 t=*x;*x=*y;*y=t;。 3求小于或等于lim的所有素数并放在aa数组中,返回素数个数。 intfun(intlim,intaa[MAX]){inti,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<=(i/2);j++)if(i%j==0)break;if(j>(i/2))aa[k++]=i;}returnk;} 二十四1将a中的数据进行修改,把修改后的数据作为函数值返回主函数输出。 形参a: 10001、"ZhangSan"、95、80、88,修改后: 10002、"LiSi"、96、81、89。 structstudent。 a.name。 a.score[i]。 2删除数列中值为x的元素。 小写p。 a[i]=a[i+1];。 3把分数最低的学生数据放在b数组中,返回分数最低的学生人数。 intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;for(i=0;i 二十五1人员的记录由编号和出生年、月、日组成,找出指定编号人员的数据。 STU。 stu[i].num。 std[i]。 2从s所指字符串中,找出与t字符串相同的子串个数返回。 s: "abcdabfab",t: "ab",返回3。 缺少分号。 if(*r==0)。 3将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t数组中。 s: "ABCDEFG12345",t: "ACEG135"。 voidfun(char*s,chart[]){inti,j=0;for(i=0;i 二十六1带头结点的单链表,链表中的各结点按数据域递增有序链接。 删除链表中数据域值相同的结点,使之只保留一个。 q。 next。 next。 2用选择法对数组中的n个元素按从小到大的顺序进行排序。 缺少分号。 p=i;。 3求出1到m之间(含m)能被7或11整除的所有整数放在数组a中m值50,输出: 711142122283335424449#include 二十七1计算下式前n项的和作为函数值返回。 n值为10返回: 9.612558。 变量s置0。 n。 t*t。 2统计substr所指子字符串在str所指字符串中出现的次数。 字符串aaaslkaaas,子字符串为as,输出2。 循环for语句中应有分号。 if 3求π的值(满足精度0.0005,小于0.0005时停止迭代): 输入精度0.0005,输出为3.14…。 doublefun(doubleeps){doubles=1,t=1./3;intn=1;while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);}main() 二十八1统计s所指字符串中数字字符出现次数,存放在t中。 s: abcdef35adgh3kjsdf7。 输出4。 s[i]。 '9'。 *t=n。 2实现两个变量值的交换。 a8,b3,运行后a3,b8。 t=*x;*x=y;。 return(t);。 3求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数voidfun(int*a,int*n){inti;*n=0;for(i=7;i<1000;i++)if(((i%7)==0||(i%11)==0)&&(i%77)! =0)a[(*n)++]=i;} 二十九1对形参b所指结构体变量中的数据进行修改输出修改后的数据。 B: 10002、"ZhangQi"、93、85、87,修改后输出t: 10004、"LiJie"、93、85、87。 ->no。 ->name。 &t。 2应用递归算法求形参a的平方根。 a为2,平方根值: 1.414214。 double错。 变量x0错写成xo。 3把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 doublefun(STREC*a,STREC*b,int*n){doublet=0;inti;*n=0;for(i=0;i 三十1将形参a结构体变量中的数据赋给b,修改b中学号和姓名,输出修改后数据。 a: 10001、"ZhangSan"、95、80、88,改后: 10002、"LiSi"、95、80、88。 a。 b.name。 score[i]。 2从s所指字符串中删除所有小写字母c。 s[j++]=s[i];。 s[j]=0;。 3假定输入的字符串中只包含字母和*号。 将字符串中的前导*号全部移到字符串的尾部。 字符串: *******A*BC*DEF*G****,移动后: A*BC*DEF*G***********。 voidfun(char*a){char*p,*q;int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机二级C语言上机试题汇编100套 计算机 二级 语言 上机 试题 汇编 100