1、河南财经政法大学2012年硕士研究生入学考试业务课试题专业名称:管理科学与工程考试科目:C程序设计(共150分)一、 单选:(答案填在答题纸上,注明题号,不要直接填在卷子上) (本题共20小题,每小题1分,共计20分)1. 下列可用作C语言程序标识符的一组字符序列是_。 A) _r38, B_K_R, _3d32, Bor_3 B) for.x, R&D, sd_2, 3DMAX C) if, extern, num, 2D&3D D) c#, c+, c, vb2. 有语句:int x,y;scanf(“x=%d,y=%d”,&x,&y);从键盘上的正确输入为_ _。 A) x=3,y=5
2、B) 3 5 C) 3,5 D) x=3 y=5 3. 下列程序段输出结果为:_。int x=-20; printf(%d,!x);A) 0 B) 1 C) 20 D) -204. 下列程序段输出结果为:_。 int x=10; printf(%d,x=10); A) 10 B) x=10 C) 1 D) 05. 以下程序段的输出结果是:_。 int x=3,y=3; printf(%d %dn,x - -, - - y); A) 3 3 B) 3 2 C) 2 3 D) 2 26. 以下程序段的输出结果是:_。int x=3,y=4; printf(%dn,y+=x+y);A) 7 B) 1
3、0 C) 11 D) 167. 以下语句的输出结果是:_。printf(%dn,(3,4,5); A) 3 B) 4 C) 5 D) 128. 语句scanf(%lf, &x);中,变量x的类型应为:_。A) int B) char C)float D)double9. 以下程序段所能输出的数必定是:_。scanf(%d, &n);if(n%2) printf(%d n,); A) 奇数 B) 偶数 C) 素数 D) 整数 10. 语句 printf( ); 输出为:_。 A) B) C) D) 11. 有如下程序段:int x=5,y=0;y=+x;printf(x=%d y=%d ,x,y
4、);y=x+;printf(x=%d y=%d ,x,y);则输出结果为:_。 A) x=6 y=6 x=7 y=6 B)x=7 y=6 x=6 y=6 C) x=6 y=7 x=7 y=7 D) x=7 y=7 x=7 y=612.有程序段如下,若x读入3,程序输出结果是:_。int x; scanf(%d,&x); switch(x) case 1: printf(1); break; case 2:printf(2); break; case 3:printf(3); case 4:printf(4); default:printf(5); A) 1 B) 123 C) 3 D) 345
5、 13. 有程序段如下,若x读入-1,程序输出结果是:_。int x; scanf(%d,&x); if(x=0) if(x0) printf(%d,x); else printf(%d,x); printf(%d,x); A) -1 B) -1-1 C) -1-1-1 D) -1-1-1-1 14. 有下面程序:int x=1,y=10,n=0; do y=y+x; x+; n+; while(y5); printf(%d,n);输出结果是:_。 A)0 B)1 C)2 D) 3 15. 有数组:int a34;其行和列下标的取值范围为:_。 A) 0-3,0-4 B) 1-3,1-4 C)
6、 0-2,0-3 D) 1-2,1-316有程序段如下,其输出结果为:_。int x=0,i; for(i=1;i+) x+; printf(%d,x); A) 0 B) 1 C) 语法错误 D) 死循环17. 有程序如下,输出结果为:_。# include stdio.hvoid f2(int,int*);void f1()int x=10,y=20; f2(x,&y); printf(%d %d,x,y); void f2(int x1,int* y1 ) x1=x1+10; *y1=*y1+10;main() f1(); A) 10 20 B) 10 30 C) 20 20 D) 20
7、3018. 有声明:int( *p)();其声明的是:_。A) 返回指针的函数 B) 指向数组的指针C) 指针数组 D) 指向函数的指针19. 有程序段如下,输出结果为:_。int a4=1,2,3,4,*p; p=a;printf(%d,*p+); A)1 B) 2 C) 3 D)4 20. 有变量定义int a=5;a是:_。 A) 外部变量 B)自动变量 C) 静态变量 D) 寄存器变量二、编写程序1. 韩信点兵问题:士兵排队报数,从1至5报数,最后一个士兵报数为1;从1至6报数,最后一个士兵报数为5;从1至7报数,最后一个士兵报数为4;从1至11报数,最后一个士兵报数为10,请编程计算
8、士兵总人数。(本题 18 分)2. 编程计算13+23+33+103的和,并输出结果。(本题 18 分)3.编写自动出题程序:每次出一道10以内的随机的个位加法题,在等号后面输入答案,如果答案正确,显示“正确!”,若答案不正确,显示“错误。”,共出10道题。如:1+2=3正确!4+8=11错误。(随机数函数为:rand(),产生2147483647以内的随机整数,对应头文件为stdlib.h。产生不同随机数种子的语句为:srand(int)time(0);对应头文件为time.h。)(本题 18 分)4. 有一个字符数组,读入一字符串,然后统计出该字符串中字母、数字和其它字符各有多少个并输出出
9、来。如:输入:abcd234*&输出:字母有4个,数字有3个,其它字符有2个。请编程。(本题 18 分)5.定义一个3行4列的整型数组,为每一个数组元素读入数据,然后将数组元素按行由小到大排序。如: 7 2 3 9 1 2 3 4 8 6 4 5 排序后: 5 6 7 8 10 1 12 11 9 10 11 12 (本题 18 分) 6. 定义一个3行3列的二维数组,为每一个元素读入数据,然后查找其两对角线元素中的最大值。如: 1 2 14 30 11 7 9 5 16 两对角线元素中的最大值为16 。(本题 20 分)7. 自己编写一个字符串函数实现strcmp的功能。编一个函数:int MyCmp(char ch1,char ch2),在该函数中比较两字符串大小。若ch1中的字符串大于ch2中的字符串,返回1,ch1中的字符串小于ch2中的字符串返回-1,ch1中的字符串等于ch2中的字符串返回0.在主函数中读入两字符串,调用该函数,输出比较结果。(本题 20 分) 第 5 页 共 5 页