资料内容:
2012年昆明理工大学817C程序设计考研真题
真题原文:
昆明理工大学2012年硕士研究生招生入学考试试题(A卷)
考试科目代码:817 考试科目名称 :C程序设计
试题适用招生专业 :085211 计算机技术 、085212 软件工程
考生答题须知
1. 所有题目(包括填空、选择、图表等类型题目)答题答案必须做在考点发给的答题纸上,做在本试题册上无效。请考生务必在答题纸上写清题号。
2. 评卷时不评阅本试题册,答题如有做在本试题册上而影响成绩的,后果由考生自己负责。
3. 答题时一律使用蓝、黑色墨水笔或圆珠笔作答(画图可用铅笔),用其它笔答题不给分。
4. 答题时不准使用涂改液等具有明显标记的涂改用品。
一、填空题(30分,每题2分)
1.设float x=2.5,y=4.7; int a=7;,则表达式 x+a%3*(int)(x+y)%2/4 的值为 。
2.设 int a=3,b=5,c=7;,则表达式a>c||c>b!=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=(a<b)?a:b)<c)?y:c 的值为 。
7.整型变量x的值为25,语句"printf("%o",x);"的输出结果为 。
8.语句printf("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++); 能否计算1~100的和? 原因是
。
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(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列,则在a[i][j]之前的元素个数为()。
A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+1
3.
#include<stdio.h>
#include<string.h>
main()
{
printf("%d\n", strlen("IBM\n012\t\"\\"));
}
则程序运行后的输出结果是( )。
A. 10 B. 11 C. 16 D. 12
4.有如下程序片段:
int i = 0;
while(i++ <= 2);
printf("%d", i);
则正确的执行结果是:( )
A. 2 B. 3 C. 4 D. 程序陷入死循环
5.下面哪个定义是合法的( )。
A. char a[8] = "language"; B. int a[5] = {0,1,2,3,4,5};
C. char *a = "string"; D. int a[][] = {0,1,2,3,4,5,6};
6.一个C程序的执行是从( )。
A.本程序的main函数开始,到main函数结柬
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
7.以下叙述不正确的是( )。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
8.一个C程序是由( )。
A.一个主程序和若干子程序组成 B.函数组成
C.若干过程组成 D.若干子程序组成
9.若x.i.j和k都是int型变量,则计算下面表达式后,x的值为( )。
x=(i=4,j=16,k=32)
A. 4 B. 16 C. 32 D. 52
10.在C语言中,char型数据在内存中的存储形式是( )。
A.补码 B.反码 C.原码 D. ASCll码
11.设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是( )。
A. while循环10次 B.循环是无限循环
C.循环体一次也不执行 D.循环体只执行一次
12..下面for 循环的正确描述是( )。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句后判断表达式
C.在for循环中,不能用break语句结束循环
D.for循环体语句中,可以包含多条语句,但必须用花括号括起来
13.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型常量 B.整型表达式
C.整型常量或整型表达式 D.任何类型表达式
14.以下正确的函数首部定义是( )。
A.double fun(int x,int y) B.double fun(int x;int y)
C.double fun(int x,int y); D.double fun(int x,y);
15.C语言中,函数返回值的类型是由( )。
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指的函数类型所决定
16.若用数组名作为函数调用的实参,传递给形参的是( )。
A.数组的首地址 B.数给的第一个元数
C.数组中全部元素的值 D.数组元素的个数
17.以下有关宏替换的叙述不正确的是( )。
A.宏替换不占用运行时间 B.宏名无类型
C.宏替换只是字符替换 D.宏名必须用大写字母表示
18.用C语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。
A.生成可执行目标文件 B.生成目标文件
C.输出运行结果 D.自动保存源文件
19.下列各个错误中,属于编译错误的是( )。
A.数组下标超界 B.“==”误写为“!=” C.死循环 D.括号不配对
20. 若int类型数据字长为4,其最大值为( )。
A.231 B.231-1 C.232-1 D.232
21.常数的书写格式决定了常数的类型和值,03322是( )。
A.16进制int类型常数 B.8进制int类型常数
C.10进制int类型常数 D.10进制long int类型常数
22.下列各语句序列中,能够将变量u和s中最大值赋值到变量t中的是()。
A.if(u>s)t=u; t=s; B.t=s; if(u>s)t=u;
C.if(u>s)t=s; else t=u; D.t=u; if(u>s)t=s;
23.下列各语句中,能够输出整型变量a和b中最大值的是()。
A.printf("%d\n",(a>b)?a,b); B.(a>b)? printf("%d",a):printf("%d",b);
C.printf("%d",if(a>b)a else b); D.printf("%d\n",(a>b)?a:b);
24.定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是()。
for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9
25.不能把字符串:Hello!赋给数组b的语句是()。
A.char b[10]={'H','e','l','l','o','!'}; B.char b[10];b="Hello!";
C.char b[10];strcpy(b,"Hello!"); D.char b[10]="Hello!";
三、写出下列程序的运行结果。(15分,每题3分)
则程序运行结果是:
运行结果是:
输出结果:
输出结果:
运行结果
四、程序填空题(共20分,每空2分)
1.下面这个程序的功能是对含有n个元素(最多10个)的一维数组按升序进行排序。
2.下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。[提示:判断是否有新单词出现的方法是------当前被检验的字符不是空格,而前一被检验字符是空格,则表示有新单词出现。]
3. 输入一行字符,统计其中的英文字符、数字字符及其它字符的个数。
五、编程(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分)
资料截图:
下载地址:
2012年昆明理工大学817C程序设计考研真题 |