国家二级(C语言)机试模拟试卷38(共27题)_第1页
国家二级(C语言)机试模拟试卷38(共27题)_第2页
国家二级(C语言)机试模拟试卷38(共27题)_第3页
国家二级(C语言)机试模拟试卷38(共27题)_第4页
国家二级(C语言)机试模拟试卷38(共27题)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级(C语言)机试模拟试卷38(共9套)(共27题)国家二级(C语言)机试模拟试卷第1套一、程序填空题(本题共1题,每题1.0分,共1分。)1、给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!#include#includevoidfun(char*s,inta,doublef){/******************found*******************/【1】fp;charstr[100],strl[i00],str2[100];inta1;doublef1;fp=fopen("filel.txt","w");fprintf(fp,"%s%d%f\n",s,a,f);/******************found*******************/【2】;fp=fopen("filel.txt","r");/******************found*******************/fscanf(【3】,"%s%s%s",str,str1,str2);fclose(fp);a1=atoi(str1);f1=atof(str2);printf("\nTheresult:\n\n%s%d%f\n",str,a1,f1);}main(){chara[10]="Hello!";intb=12345;doublec=98.76;fun(a,b,c);}标准答案:(1)FILE*(2)fclose(fp)(3)fp知识点解析:第一空:“fp=fopen("filel.txt","w");"可知fp是文件型指针,故第一空处fp的定义应为"FILE*"。第二空:第二处的后面一句是“邱=fopen("filel.txt","r");"再次打开filel.txt,因此在第二次打开filel.txt之前必须将文件关闭,故第二处是关闭文件,即“fclose(fp)"。第三空:fscanf的调用形式是:fscanf(fp,格式字符串,输入列表),因此第三空处应为“fp",从文件当中读出字符串、整数、浮点数。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODll.C中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f:若形参是字母w,则转换为小写字母b。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#includecharfun(charc){if(c>=’A’&&c<=’Z’)/**************found***************/C=C+32;if(c>=’a’&&c<=’u’)/**************found***************/c=c-5;elseif(c>=’v’&&c<;’z’)c=c-21;returnc;}main(){charc1,c2;printf("\nEnteraletter(A—Z):");c1=getchar();if(isupper(c1)){c2=fun(c1);printf("\n\nTheletter\’%c\’changeto\’%c\’\n",c1,c2);}elseprintf("\nEnter(A—Z)!\n");}标准答案:(1)c=c+32;(2)c=c+5;知识点解析:(1)第一个标识下“C=C+32;"中变量C没有定义,编译时会提示出错。根据题意,这行语句的作用是将大写字母转换为小写字母,C语句中大写字母转换为对应的小写字母是对原有ASCⅡ码加32,小写转换为大写是减32,所以应将“C=C+32;"改为“C=C+32;"。(2)第二个标识下是将小写字母转换为其后的第五个字母,字母在a~u之间只加上5就可以了,原题中减5则是将字母转换到该字母之前的第五个字母,所以第二个标识下“C=C-5:"改为“C=C+5;"。三、程序设计题(本题共1题,每题1.0分,共1分。)3、请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有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。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#defineN80voidfun(int*w,intp,intn){}main(){inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;voidNONO();printf(”Theoriginaldata:\n”);for(i=0;i标准答案:inti,j=0,b[N];for(i=p+1;i知识点解析:(1)本题中首先将数组内容拷贝到一个临时一维数组b。(2)然后,从指定下标的下个数组元素开始向前移动。(3)最后,接着拷贝临时数组b中的第一个下标开始到指定的下标的元素为止。国家二级(C语言)机试模拟试卷第2套一、程序填空题(本题共1题,每题1.0分,共1分。)1、函数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。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKI.C中。不得增行或删行。也不得更改程序的结构!#include#defineN9intfun(inta[],intn){inti,j;j=0;for(i=0;i标准答案:1;j++j知识点解析:第一空:根据“a[j]=a[i];”可知,a[i]是奇数,变量j记录奇数的个数,故第一空处是判断a[i]是否是奇数,故第一空处应为“1”。第二空:变量j记录奇数的个数,故第二空处j计数应当加1,因此第二空处应为“j++”或“j=j+1”。第三空:fun函数的返回值是奇数个数,故第三空处应为“j”。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODII.C中函数fun的功能是:计算S=f(-n)+f(一n+1)+…+f(0)+f(1)+f(2)+…+fi(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#include/************found************/f(doublex){if(x==0.0||x==2.0)return0.0;elseif(x<0.0)return(x-1)/(x-2);elsereturn(x+1)/(x-2);}doublefun(intn){inti;doubles=0.0,y;for(i=-n;i<=n;i++){y=f(1.0*i);s+=y;}/************found************/returns}main(){printf("%f\n",fun(5));}标准答案:doublef(doublex)returns;知识点解析:(1)第一个标识下f函数的定义缺少返回值类型,所以将“f(doublex)”改为“doublef(doublex)”。(2)第二个标识下返回语句没有分号结束。所以,第二个标识下“returns”应该改为“returns;”。三、程序设计题(本题共1题,每题1.0分,共1分。)3、编写函数fun,它的功能是:计算并输出下列级数和:例如,当n=10时,函数值为:0.909091。注意:部分源程序在文件PROGI.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includedoublefun(intn){}main()/*主函数*/{voidNONO();printf("%f\n",fun(10));NONO();}voidNONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,n;doubles;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%d",&n);s=fun(n);fprintf(wf,"%f\n",s);}fclose(fp);fclose(wf);}标准答案:{doubles=0.0;inti;for(i=1;i<=n;i++)s=s+1.0/(i*(i+1));returns;}知识点解析:(1)根据题干中给出的数列,推出每一项是1.0/(i*(i+1))。(2)在循环中求得每一项,然后对其进行累加求和。国家二级(C语言)机试模拟试卷第3套一、程序填空题(本题共1题,每题1.0分,共1分。)1、函数fun的功能是:计算的前n项。若x=2.5,函数值为:12.182340。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!标准答案:(1)1(2)1(3)i知识点解析:本题中函数的功能是求级数和,级数项的变化规律是:后一项是在前一项的基础上乘以x除以n。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!标准答案:(1)t=(STU*)calloc(sizeof(sTu),m);(2)t[k]=b[j];知识点解析:本题中函数的功能是按学习成绩从高到低的顺序找出前m(m≤10)名学生。利用循环结构实现对定义的结构体中的成绩域进行排序。三、程序设计题(本题共1题,每题1.0分,共1分。)3、请编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有素数的平方根之和。例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。标准答案:知识点解析:函数fun的功能是计算并输出3到n之间(含3和n)所有素数的平方根之和,首先根据题干中的要求找出3到n之间的素数,并求出素数的平方根,然后求得这些平方根的和。国家二级(C语言)机试模拟试卷第4套一、程序填空题(本题共1题,每题1.0分,共1分。)1、给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1:不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3×3的矩阵就是一个“幻方”:请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!#include#defineN3intfun(int(*a)[N]){inti,j,m1,m2,row,colum;m1=m2=0;for(i=0;i标准答案:(1)*(2)||(3)1知识点解析:第一空:由“row+=a[i][j];colum+=a[j][i];"可知row是计算行和,colum是计算列和,故第一空处的初始化应将行和与列和初始化为0,即第一空处应为“0"。第二空:“if((row!=colum)【3】(row!=m1))return0:"如果行和不等于列和,那么矩阵不是幻方,如果行和不等对角线和,那么矩阵也不是幻方,即两者是或的关系,故第二空处应为"||"第三空:不是幻方的情况在前面都会返回0,所有不是幻方的情况都已经考虑到了,剩下的就是幻方,故第三空处为“1"。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODll.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。例如,若输入2则输出:若输入4则输出:请改正程序函数中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#include#defineM10inta[M][M]={0};/***************found****************/voidfun(int**a,intm)(intj,k;for(j=0;j标准答案:(1)voidfun(inta[][M],intm)(2)a[j][k]=(k+1)*(j+1);知识点解析:(1)第一标识下“int**a",a是指向指针的指针,在主函数内fun函数的调用形式是:“fun(a,n);",其中a是二:维数组,代表数组的首地址,因此fun函数的第一个参数是指针,而不是指向指针的指针,故第一个标识下应改为“voidfun(inta[][M],intm)"。(2)根据题干给出的例子可以分析出,数组元素与行和列的关系是a啪[k]=(k+1)*(j+1),因此第二标识下应改为“a[j][k]=(k+1)*(j+1);"。三、程序设计题(本题共1题,每题1.0分,共1分。)3、请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#defineN50#defineM11voidfun(int*a,int*b){}doublernd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);}main(){intageIN],i,d[M];voidNONO(intd[M]);for(i=0;i标准答案:inti,j;for(j=0;j=0&&a[i]<=9)//0到9岁b[0]+=1;elseif(a[i]>=10&&a[i]<=19)//10到19岁b[1]+=1;elseif(a[i]>:20&&a[i]<=29)b[2]+==;elseif(a[i]>=30&&a[i]<=39知识点解析:(1)首先,初始化不同年龄段的计数统计器。(2)然后在for循环中,利用多重选择结构,依次对年龄进行判断,同时将对应的计数器值加1操作。国家二级(C语言)机试模拟试卷第5套一、程序填空题(本题共1题,每题1.0分,共1分。)1、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5##43df,处理后新字符串为:123543asdfgh##df。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!标准答案:(1)j(2)k(3)p知识点解析:函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移出。在劬函数中,定义了两个数组指针p和t分别存储数字字符和其他字符,把s所指的字符串中的数字字符和其他字符分别存储在p和t中,然后将t字符串中的字符按照题干要求的顺序存储在p字符串的后面。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODll.C中函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,若输入:edcba,则应输出:abcde。请改正程序中的错误,使它能统计出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!标准答案:(1)for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)(2)if(t[j]>t[j+1])知识点解析:本题中函数的功能是读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。本题思路是利用字符串长度作为循环的控制条件,然后在循环过程中将字符按.ASCII码排序。三、程序设计题(本题共1题,每题1.0分,共1分。)3、请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有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。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。标准答案:知识点解析:该程序功能是移动一维数组中的内容。解题思路首先将字符串拷贝到一个临时的数组,然后将字符串进行前移操作,最后将由于前移覆盖掉的字符,由临时数组中拷贝到指定字符串。国家二级(C语言)机试模拟试卷第6套一、程序填空题(本题共1题,每题1.0分,共1分。)1、请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。例如,输入6和21,则输出为:71113171921。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<conio.h>#include<stdio.h>#defineN1000intfun(intn,intm,intbb[N]){inti,j,k=0,flag;for(j=n;j<=m;j++){【】;for(i=2;i<j;i++)if(【】){flag=0;break;}if(【】)bb[k++]=j}returnk;}main(){intn=0,m=0,i,k;intbb[N];clrscr();printf("Inputn\n");scanf("%d",&n);printf("Inputm\n");scanf("%d",&m);for(i=0;i<m-n;i++)bb[i]=0;k=fun(n,m,bb);for(i=0;i<k;i++)printf("%4d",bb[i]);}标准答案:Ip->next=sp->next知识点解析:第一空:题目要求各结点的值为对应的下标,头结点的值为0,其他结点的值从1开始,所以此空应填i。第三空:为了将结点p和结点s连接起来,应将结点p的next指针指向结点s。第三空:为了通过for循环形成链表,每执行完一次循环操作,都要将指针p指向下一个结点。二、程序修改题(本题共1题,每题1.0分,共1分。)2、下列给定程序中,函数fun()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。π/4≈1-1/3+1/5-1/7+…例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<math.h>#include<stdio.h>floatfun(floatnum){ints;floatn,t,pi;t=1;pi=0;n=1;s=1;/**************found***************/while(t>=num){pi=pi+t;n=n+2;s=-s;/**************found**************/t=s%n;}pi=pi*4;returnpi;}main(){floatn1,n2;clrscr();printf("Enterafloatnumber:");scanf("%f",&n1);n2=fun(n1);printf("%6.4f\n",n2);}标准答案:(1)错误:while(t>=num)正确:while(fabs(t)>=num)(2)错误;t=s%n;正确:t=s/n;知识点解析:函数fun()中while语句的含义是,当新的一项大于给定参数时,循环累计,计算s的值。而题目要求是最后一项的绝对值小于给定参数,因此循环条件应当为while(fabs(t)>=num),而非while(t>=num)。三、程序设计题(本题共1题,每题1.0分,共1分。)3、请编写函数fun(),该函数的功能是:计算并输出S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)例如,若主函数从键盘给n输入20后,则输出为s=534.188884。注意;部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<math.h>#include<stdio.h>doublefun(intn){}main(){intn;doubles;printf("\n\nInputn:");scanf("%d",&n);s=fun(n)printf("\n\ns=%f\n\n",s);}标准答案:doublefun(intn){inti;doubles=0.0,s1=0.0;for(i=1;i<=n;i++){s1=s1+pow(i,0.5);/*求每—项*/s=s+s1;/*按公式求出s*/}returns;}知识点解析:我们先用数学的思路读懂该程序,并用1个字符表示“()”内的值。在本程序中用s1来表示题中每个小括号内的值,第1项相当于有1个10.5次方(它还是1),第2项相当于第1项的值加上200.5次方,第3项相当于第2项的值加上30.5次方,…,依次类推。函数pow(x,y)的功能是求出x的y次方,该函数已在库函数<math.h>中定义(即可直接使用)。要程序中用s来表示总的结果,每1次循环加1次s1即加1项。国家二级(C语言)机试模拟试卷第7套一、程序填空题(本题共1题,每题1.0分,共1分。)1、函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!#includeintfun(inta,intb,intc){intt;/***************found****************/t=(a>b)?(b>c?b:(a>c?C:【1】)):((a>C)?【2】:((b>c)?c:【3】));returnt;}main(){inta1=3,a2=5,a3=4,r;r=fun(a1,a2,a3);printf("\nThemiddlenumberis:%d\n",r);}标准答案:(1)a(2)a(3)b知识点解析:第一空:语句“(a>b)?(b>c?"表示a>b>c,根据题目要求,则中间值为b,若只是满足第一个“?"前面的条件,而c>b,则选择执行“(a>c?c:【1】)",当a>c时取值c,所以ac)?"是对a、c的比较选择,第三空处的“(b>c)?c"根据b、c的判断,题目已经给出了c,所以这里应该是a。第三空:第三空中对于b、c的判断选择缺少b,所以这里填“b"。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODll.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#includevoidfun(chars[],intn){chara[80],*p;inti;/***************found****************/s=p;for(i=0;i标准答案:(1)p=s;(2)while(*p++);知识点解析:(1)变量初始化应是将形参数组地址s传给工作指针p。因此,应将“s=p;"改为"p=s;"。(2)dowhile循环的目的是把P指向的字符串内容拷贝到a字符串的后面,但第二标识下while语句没有使用分号技术,故第二标识下应改成“while(*p++);"。三、程序设计题(本题共1题,每题1.0分,共1分。)3、请编写函数proc(),该函数的功能是:计算并输出例如,若主函数从键盘给n输入10后,则输出为S=104.478749。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include#includedoubleproc(intn){}voidmain(){intn;doubleS;printf("\n\nInputn:");scanf("%d",&n);S=proc(n);printf("\n\nS=%f\n\n",S);}标准答案:doubleproc(intn){inti;doubles=0.0,s1=0.0;for(i=1;i<=n;i++){S1=S1+pow(i,0.5);//求每一项S=S+S1;//按公式求出S}returnS;}知识点解析:在本程序中,用S1来表示题中每个小括号内的值,第1项相当于有1个10.5,第2项相当于第1项的值加上20.5,第3项相当于第2项的值加上30.5,…,依此类推。函数pow(x,y)的功能是求出x的y次方,程序中用S来表示总和值,每循环一次加1次S1的值,即加1项。国家二级(C语言)机试模拟试卷第8套一、程序填空题(本题共1题,每题1.0分,共1分。)1、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:9.612558。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!标准答案:(1)0(2)n(3)(t*t)知识点解析:函数fun的功能是求级数和,观察可知,级数项有规律变化,可以用循环来累加求和。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODll.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIsisaboot,则输出应该是:1、0、2、2、0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!标准答案:(1)num[k]=0;(2)switch(*s)知识点解析:本题中函数的功能是统计字符串中各元音字母(即A、E、I、O、U)的个数。其中,本题在while循环中采用switch-case条件判断字符串中的每一个字符并进行统计。三、程序设计题(本题共1题,每题1.0分,共1分。)3、编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。例如,分别输入下面两个字符串:FirstString--SecondString程序输出:FirtString--SecondStdng注意:部分源程序在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。标准答案:知识点解析:该程序功能是实现两个字符串的连接。本题要把串2连接到串1之后,则需要把串2的第一个字符放到串1的尾符的位置上,把串2的后面的字符放到串1的后面的位置。国家二级(C语言)机试模拟试卷第9套一、程序填空题(本题共1题,每题1.0分,共1分。)1、给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK.C中。不得增行或删行,也不得更改程序的结构!#includevoidfun(unsignedlong*n){unsignedLongx=0,i;intt;i=l;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(){unsiqnedlongn=一1;while(n>99999999||n<0){printf("Pleaseinput:(0标准答案:(1)10(2)0(3)x知识点解析:第一空:“t=*n%【1】;"是求n的个位数,因此第一空处应填"10"。第二空:由审题分析可知,fun函数是将参数’n所指变量中的奇数取出并重新排序,故第二处是判断t是否是奇数,t%2!=0说明t是奇数,因此第二空处应填“0"。第三空:“x=x+t*i;j=i*10;"可知x记录了重新排序后的数,故返回值是x,因此第三处是将x赋值给n所指的变量,因此第三空应为“x"。二、程序修改题(本题共1题,每题1.0分,共1分。)2、给定程序MODII.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回,规定,函数中a1放个位数,a2放十位数。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#includeintfun(int*b){intk,a1,a2,i=0;for(k=10;k<=55jk++){/*************found*************/a2=k/10;al=k-a2*10;if((k%3==0&&a2==

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论