1、昆明理工大学2012年硕士研究生招生入学考试试题(A卷)考试科目代码:817 考试科目名称 :C程序设计试题适用招生专业 :085211 计算机技术 、085212 软件工程考生答题须知1 所有题目(包括填空、选择、图表等类型题目)答题答案必须做在考点发给的答题纸上,做在本试题册上无效。请考生务必在答题纸上写清题号。2 评卷时不评阅本试题册,答题如有做在本试题册上而影响成绩的,后果由考生自己负责。3 答题时一律使用蓝、黑色墨水笔或圆珠笔作答(画图可用铅笔),用其它笔答题不给分。4 答题时不准使用涂改液等具有明显标记的涂改用品。一、填空题(30分,每题2分)1.设float x=2.5,y=4.
2、7; int a=7;,则表达式 x+a%3*(int)(x+y)%2/4 的值为 。2设 int a=3,b=5,c=7;,则表达式ac|cb!=0&c=b+a 的值为 。3.已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为 。4.判断变量a、b是否是数值相等而符号相反的逻辑表达式为 。5.m是值为两位数的整型变量,判断其个位数是奇数而十位数是偶数的逻辑表达式为 。6.若 a=13、b=25、c=-17,条件表达式 (y=(ab)?a:b)c)?y:c 的值为 。7.整型变量x的值为25,语句printf(%o,x);的输出结果为 。8.语句print
3、f(s%s,mall); 的输出结果为 。9若int k=2, 循环语句while (k!=0) printf(%d,k); k-; 执行 次。10.程序段 int s,i; for(i=1;i=100;s+=i,i+); 能否计算1100的和? 原因是 。11.定义语句为 char a=Box,b=Boss;strcmp(a,b)结果为 。12对下列递归函数,函数调用f(3)的返回值是 。 int f(int n) return(n=0)?1:f(n-1)+2);13.函数的参数为int类型时,实参向形参传递的方式为 。14.函数change定义如下,若a=10、b=5,执行 change(
4、a,b)后a、b的值分别为 。 void change(int a,int b) int t=0; t=a; a=b; b=t;15.函数之间参数传递的方式有 和 。二、单项选择题:(50分,每题2分)1判断字符串s1与字符串s2相等,应当使用:()。A. if (s1=s2) B. if (strcmp(s1, s2)C. if (!strcmp(s1, s2) D. if (strcmp(s1, s2) = 0)2二维数组a有m行n列,则在aij之前的元素个数为()。A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+13#include#includemain()
5、 printf(%dn, strlen(IBMn012t);则程序运行后的输出结果是( )。A. 10 B. 11 C. 16 D. 124有如下程序片段:int i = 0;while(i+ s)t=u; t=s; B.t=s; if(us)t=u; C.if(us)t=s; else t=u; D.t=u; if(us)t=s;23.下列各语句中,能够输出整型变量a和b中最大值的是()。 A.printf(%dn,(ab)?a,b); B.(ab)? printf(%d,a):printf(%d,b); C.printf(%d,if(ab)a else b); D.printf(%dn,(
6、ab)?a:b);24.定义如下变量和数组: int i; int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是()。for(i=0;i3;i+) printf(%d,xi2-i); A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 25.不能把字符串:Hello!赋给数组b的语句是()。 A.char b10=H,e,l,l,o,!; B.char b10;b=Hello!; C.char b10;strcpy(b,Hello!); D.char b10=Hello!;三、写出下列程序的运行结果。(15分,每题3分)1#include main( ) in
7、t a = 5, b = 4, x, y; x = 2 * a ; printf(a=%d, x=%dn, a, x); y = b * 2; printf(b=%d, y=%dn, b, y);则程序运行结果是:2#includevoid fun1(int x) x=20;void fun2(int b4) int j; for(j=0; j4; j+) bj=j; main() int x = 10; int a4 = 1,2,3,4, k; fun1(x); printf(x = %dn, x); fun2(a); for(k=0; k4; k+) printf(%dn, ak); 运行
8、结果是:3#include void main( ) int k=0; char c=A; do switch (c) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; break; case E: k=k*10; break; default: k=k/3; c+; while(cG); printf(k=%dn, k); 输出结果: 4. #include void fun1(int n,int a3) for(int i=0;in;i+) for(int j=0;j=i;j+) aij=aij/aii;
9、void main() int a33=6,4,2,8,6,4,9,6,3; fun1(3,a); for(int i=0;i3;i+) for(int j=0;j3;j+) printf(%d ,aij); printf(n); 输出结果:5.#include long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return (2); main()printf(“%ldn”,fib(6);运行结果 四、程序填空题(共20分,每空2分)1.下面这个程序的功能是对含有n个元素(最多10个)的一维数组按升序进行排序。#include #def
10、ine ARRAY_SIZE 10void Sort(int a, int n);void InputArray(int a,int n);void PrintArray(int a,int n);main()int aARRAY_SIZE, n;printf(Input array lenth n=10: );scanf(%d, &n);printf(输入数组 a:n);InputArray(a, n);Sort(a, n);printf(打印排序后的数组 a:n);PrintArray(a, n);void Sort(int a, int n) int i, j, p, temp;for(
11、i = 0; i (1) ; i+)p = i;for(j = (2) ; j n; j+)if( (3) ) p = j;if( (4) )temp = ap;ap = ai;ai = temp;void InputArray(int a, int n)int i;for (i = 0; i n; i+) (5) ;void PrintArray(int a, int n)int i;for (i = 0; i n; i+)printf(%d , ai);printf(n);2.下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。提示:判断是否有新单词出现的方法是
12、-当前被检验的字符不是空格,而前一被检验字符是空格,则表示有新单词出现。#includemain()char str80;int i, num;gets(str);if(str0!= )num = 1;elsenum = 0;for(i = 1; stri (6) ; i+)if(stri (7) & stri-1 (8) )num+;printf(num=%dn, num);3. 输入一行字符,统计其中的英文字符、数字字符及其它字符的个数。#include #include #define ARR_SIZE 80main()char strARR_SIZE;int len, i, lette
13、r=0, digit=0, others=0; gets(str); for (i=0; (9) ; i+) if ( (10) ) letter +; else if (stri=0& stri=9) digit +; else others +; printf(English character: %dn, letter); printf(digit character: %dn, digit); printf(other character: %dn, others);五、编程(35分)1. 编程计算1!+2!+3!+10!的值。(12分)2. 从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。(12分)要求按如下函数原型进行编程,分别计算最高分和统计不及格学生的人数:int FindMax(int score, int n);int CountFail(int score, int n);3. 从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。(11分)第 8 页 共 8 页
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。