1、机密机密 考试结束前考试结束前第 1页,共 15页浙浙 江江 科科 技技 学学 院院20202020 年硕士研究生招生入学考试试题年硕士研究生招生入学考试试题 A考试科目:考试科目:C C 程序设计程序设计代码:代码:818(请考生在答题纸上答题,在此试题纸上答题无效)(请考生在答题纸上答题,在此试题纸上答题无效)一、一、单选题(本大题共单选题(本大题共 20 小题,每题小题,每题 1 分,共分,共 20 分)分)1.以下合法的以下合法的 C 程序标识符是(程序标识符是() 。AdoubleB8eCucd*2iD_Dm2.表达式:表达式:(int)(float)9/2)-(9)%2 的值是(的
2、值是() 。A.0B.3C.4D.53.若有定义若有定义: inta ,b;通过语句通过语句 scanf(“%d%d”,&a,&b);能将整数能将整数 3 和和 5 依次依次赋给变量赋给变量 a 和和 b 的输入数据是(的输入数据是() 。A.35B.3,5C.3;5D.354.for( x=1,y=1; x4; x+ ) y+=4; 执行该代码后执行该代码后 y 的值是(的值是() 。A5B9C13D175.有如下程序:有如下程序:#include main()int a=-2,b=0;while(a+&+b);printf(%d,%dn,a,b);程序运行后的结果是(程序运行后的结果是()
3、 。A.1,3B.0,2C.0,3D.1,2机密机密 考试结束前考试结束前第 2页,共 15页6.设有:设有:#include main()int x;scanf(%d,&x);if(x=3);else if(x!=10)printf(%dn,x);程序运行时,输入的值在哪个范围才会有输出结果程序运行时,输入的值在哪个范围才会有输出结果()。A.不等于不等于 10 的整数的整数B.大于大于 3 且不等于且不等于 10 的整数的整数C.大于大于 3 或等于或等于 10 的整数的整数D.小于小于 3 的整数的整数7.有如下程序有如下程序voidmain()intx=3,a=2,b=1;switch
4、(x)case 1:a+=2;break;case 3:b+;case 2:a+;b+;printf(a=%d,b=%dn,a,b);该程序的输出结果是该程序的输出结果是( () )。Aa=4,b=2Ba=3,b=3Ca=2,b=2Da=4,b=3机密机密 考试结束前考试结束前第 3页,共 15页8.下列程序的运行结果是(下列程序的运行结果是() 。main()char c1,c2;for(c1=0,c2=9;c1c2;c1+,c2-)printf(“%c%c”,c1,c2);printf(“n”);A.0918273645B.0893478654C.0786584763D.091824576
5、59.判断以下程序的运行结果(判断以下程序的运行结果() 。#include main()int sum=0,x=5;dosum+=x;while(!-x);printf(%dn,sum);A.0B.5C.14D.1510. 以下程序运行后的输出结果是(以下程序运行后的输出结果是() 。#include main()char ch=Z;ch=(ch-A+1)%26+A;putchar(ch);A.AB.BC.ZD.Y机密机密 考试结束前考试结束前第 4页,共 15页11.下列程序段的输出结果是(下列程序段的输出结果是() 。int k = 1;switch( k )case 1: putcha
6、r(P);case 2:case 3: putchar(Q); break;case 4: putchar(R);default: putchar(S);A. PB. PQRC. PQRSD. PQ12. 有如下程序:有如下程序:#include #define N 2#define M N+1#define NUM 2*M+1main()int i;for(i=1;i=NUM;i+)printf(%dn,i);则程序中则程序中 for 循环的次数是(循环的次数是( ) 。A.5B.7C.6D.813. 执行下面程序后的输出结果为执行下面程序后的输出结果为() 。main()int a=3,7
7、,-1,8,20,*p;p=a+2;printf(%dn,*p);机密机密 考试结束前考试结束前第 5页,共 15页A.5B.9C.8D.-114. 设有以下程序段:设有以下程序段:#include int b=2;int fun(int *k)b=*k+b;return b;main()int a10=1,2,3,4,5,6,7,8,i;for(i=2;i4;i+)b=fun(&ai)+b;printf(%d ,b); printf(n);则程序运行后的结果是(则程序运行后的结果是() 。A.10 2B.10 28C.8 10D.10 1615. 下列程序段的输出结果是下列程序段的输出结果是
8、() 。main()int a3=1,2,3,4,5,6,7,8,9,i,j;for(i=1;i3;i+)for(j=i;j5)printf(%dn,x);elseprintf(%dn,x-);机密机密 考试结束前考试结束前第 6页,共 15页A.5B.4C.6D.717. 根据以下程序,输出的结果是(根据以下程序,输出的结果是() 。#include struct s int a,b;data2=10,100,20,200 ;main()struct s p=data1;printf(%dn,+(p.a);A.10B.11C.20D.2118. 以下程序运行后的结果是以下程序运行后的结果是(
9、) 。#include #include main()printf(%dn,strlen(ABCn0121);A.3B.4C.8D.919. 设有:设有:int k;for(k=-1;k0;k+)printf(“*n”);则以下选项关于则以下选项关于 for 语句叙述正确的是(语句叙述正确的是() 。A.执行一次循环执行一次循环B.执行两次循环执行两次循环C.循环一次也不执行循环一次也不执行D.死循环死循环20. 下列程序段的输出结果是下列程序段的输出结果是() 。int k, s;for(k=0,s=0;kk)break;elses+=k;printf(“(%d,%d)”,k,s);A.(4
10、,5)B.(4,6)C.(6,9)D.不是不是 A.B.C机密机密 考试结束前考试结束前第 7页,共 15页二二、程序填空题(本大题共、程序填空题(本大题共 5 小题,每空小题,每空 2 分,共分,共 30 分)分)1.下列程序通过函数的递归调用计算阶乘。请填空。下列程序通过函数的递归调用计算阶乘。请填空。#includelong pf(int n)long f;if(n 1)f = _(1)_;else_(2)_;return( f );int main()int n;long p;scanf(%d,&n);p = _ (3)_;printf(%d!=%ldn,n,p);return 0;(
11、1)A.power(n-1)*nB.pf(n-1)*nC.power(n-1)D.pf(n)*(n-1)(2)A.f=f(1)B.f=f(0)C.f=1D.f=0(3)A.power(n)B.pf(n)C.power(n !)D.n !2.验证哥德巴赫猜想(即一个大于或等于验证哥德巴赫猜想(即一个大于或等于 6 的偶数可以表示为两个素数之和的偶数可以表示为两个素数之和) 。【程序】【程序】#include int prime(int n);void guess(int n);机密机密 考试结束前考试结束前第 8页,共 15页void main()int n,n1,n2;doprintf(Ple
12、ase input an even number(=6):);scanf(%d,&n);while(!(n=6&n%2=0);guess(n);void guess(int n)int n1,n2;for(n1=3;n1=n/2;n1+=2)n2=n-n1;if(_(4)_)printf(%d=%d+%dn,n,n1,n2);int prime(int n)int i,flag;flag=1;for(i=2;inumB.p.numC.p-numD.*p.num(9)A.head= p-nextB.head=head-nextC.p= head-nextD.p=p-next4.程序中随机产生程序
13、中随机产生 50 个小写英文字母,并统计每个字符出现的次数个小写英文字母,并统计每个字符出现的次数。【程序】【程序】#include #include 机密机密 考试结束前考试结束前第 10页,共 15页#include void main()char s50;int i, n26,x;srand(time(NULL);_(10)_for(i=0;i50;i+)_(11)_printf(%c ,si);if(i+1)%10=0)printf(n);_(12)_nx+;for(i=0;i26;i+)printf(%c:%dn,a+i,ni);(10)Afor(i=0;i26;i+) ni=1;B
14、.for(i=0;i50;i+) si=0;C.for(i=0;i26;i+) ni=0;D.for(i=0;i26;i+) ni=i;(11)A.ni=rand()%26;B.si=rand()%26+a;C.ni=rand()%26+a;D.si=rand()%26;(12)A.x=si-a;B.x=si-0;C.x= i;D.x=si;机密机密 考试结束前考试结束前第 11页,共 15页5.下列程序将下列程序将数组名作为函数参数,求平均成绩。数组名作为函数参数,求平均成绩。请填空。请填空。#includefloat aver(_(13)_,int n)int i;float av,s =
15、 a0;for(i = 1; i n; i +)s += ai;av = s / n;_(14)_ ;int main()float sco5,av;int i;for(i = 0; i 5; i +)scanf(%f,sco + i);av = aver(_(15)_ , 5);printf(average score is %5.2fn,av);return 0;(13) A.floatB.float a C.float aD.float sco (14) A.return sB.return (a)C.return 0D.return (av)(15) A.scoB.aveC.averD
16、.sco5机密机密 考试结束前考试结束前第 12页,共 15页三三、程序阅读题(本大题共、程序阅读题(本大题共 6 小题,每小题小题,每小题 5 分,共分,共 30 分)分)1.下面程序的输出结果是(下面程序的输出结果是() 。#includeinta=1,b=2;intf( )static int c=10;int a=3;c += 3;return(a+c);void main( )int i,b;for(int i=0;i2;i+)b=f( );printf( “%d,%dn”,a,b);A1,16B1,19C1,21D3,202.以下程序运行后的输出结果是以下程序运行后的输出结果是()
17、 。#include void f(int a,int n,int m)int i,j;for(i=m;i=n;i-)ai+1=ai;main()int i,a20=1,2,3,4,5,6,7,8,9,10;f(a,2,9);for(i=0;i5;i+) printf(%d,ai);A.12345B.12344C.12334D.12234机密机密 考试结束前考试结束前第 13页,共 15页3.以下程序运行后的输出结果是以下程序运行后的输出结果是() 。#includevoid main()int c=0,k;for(k=1;k3;k+)switch(k)default: c+=k;case 2
18、:c+;break;case 4:c+=2;break;printf(%dn,c);A.3B.5C.7D.94.下列程序运行时输入下列程序运行时输入“156”的输出结果是(的输出结果是() 。#includevoid main()int a80,i=0,x;scanf(%d,&x);doai=x%16;i+;x/=16;while(x!=0);i-;doif(ai=0);A.c9B.d9C.9cD.912机密机密 考试结束前考试结束前第 14页,共 15页5.以下程序的输出结果是以下程序的输出结果是() 。#includemain()char ch7=65ab21;int i=0, s=0;f
19、or(;chi= 0&chi= 9 ;)s=10*s+chi-0;i+=2;printf(%dn, s);A6B 6521C65D06.下列程序的运行结果是(下列程序的运行结果是() 。#includevoid f(int b )int i;for(i=2;i6;i+)bi*=2;main( )int a10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf(%d,ai);A.1,2,3,4,5,6,7,8,9,10,B.1,2,3,4,10,12,14,16,9,10,C.1,2,6,8,10,12,14,16,9,10,D.1,2,6,8,
20、10,12,7,8,9,10,机密机密 考试结束前考试结束前第 15页,共 15页四四、程序设计题(本大题共、程序设计题(本大题共 6 小题,共小题,共 70 分)分)1.输入一个实数输入一个实数,判断是否在已知的一组数判断是否在已知的一组数:48.2,12.3,-26.8,126.7,-564.1,32.5,67.4 中,若在,输出中,若在,输出 yes,不在输出,不在输出 no。 (本题(本题 10 分)分)2. 编写一个函数编写一个函数 int fun(int n),通过调用该函数在主函数中输出所有的水仙花数通过调用该函数在主函数中输出所有的水仙花数。(水仙花数是指一个三位正整数,其各位
21、数字的立方和等于该数本身(水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身) 。 (本题(本题 10分)分)3. 输入输入 45 的数组的数组,编写程序实现编写程序实现:求出其中的最小值求出其中的最小值,以及它所在的位置以及它所在的位置。 (本本题题 10 分)分)4. 在主函数中输入两个整数在主函数中输入两个整数 m 和和 n,将从,将从 D 盘根目录下的盘根目录下的 filename.txt 文件读入文件读入的字符串,从第的字符串,从第 m 个字符开始,删除个字符开始,删除 n 个连续的字符,并将修改后的字符串以追个连续的字符,并将修改后的字符串以追加方式写入加方式写入 file
22、name.txt 文件文件。 (本题(本题 10 分)分)5. 编写一个函数,用于对一维数组进行升序排序,然后在主函数中输入编写一个函数,用于对一维数组进行升序排序,然后在主函数中输入 10 个数个数,调用该函数调用该函数,将排序后的结果打印输出将排序后的结果打印输出,可以用冒泡排序或者选择排序可以用冒泡排序或者选择排序。 (本题本题 12分)分)6. 输入输入 8 个学生个学生 6 门课的成绩,分别用函数求:门课的成绩,分别用函数求: (本题(本题 18 分)分)每个学生的平均分每个学生的平均分每门课的平均分每门课的平均分找出最高和最低的总分数所对应得学生和课程找出最高和最低的总分数所对应得学生和课程