长春大学C语言题库及答案.docx
《长春大学C语言题库及答案.docx》由会员分享,可在线阅读,更多相关《长春大学C语言题库及答案.docx(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言题库(一)(总分100分,考试时长90分钟)一、单项选择题(每题2分,共40分)1、用高级程序设计语言编写的程序,OA、计算机能直接执行B、具有良好的可读性和可移植性C、执行效率高,但可读性差D、依赖于具体机器,可移植性差2、假设有定义语句:int a=10; double b=3. 14;,那么表达式a +a+b值得类型是 OA、 charB intC、 doubleD、 float3、下面程序的输出是。(口表示一个空格)int a=3366;printf (1 %-08d|a);A、 |-0003366|B、 |00003366|C、|3366口口口口|D、输出格式非法4、运行以下程
2、序后,如果从键盘上输入china#回车,那么输出结果为 ftinclude main()int vl=0, v2=0;char ch;while (ch=getchar( )!=#) switch(ch) case a : case h : default: vl+;case o : v2+;)printf (d, %drT, vl, v2);)A、2,0B、5,0【解析】此题主要考查的是函数参数的传递。在C语言中,函数参数的传递是 “传值”的,即复制一份实参给形参,形参和实参是完全没有关系的两个变 量。所以在函数内部改变形参变量,并不会影响到函数外部的实参。要实现“传址”调用,必须通过指针。
3、因为将实参指针内容复制给了形参指针后,两 个指针变量虽然没有任何关系,但它们指向的却是同一个内存地址,当改变形 参指针所指向的那个内存地址的内容时,实参指针所指向的内容也就同时被改 变了,从而实现了 “传址”调用。但是,并不是说只要函数参数是指针,那肯 定就是“传址”调用。应选择C)。13、B14、D15、D16、B17、D18、C19、A20、C【解析】结构件变量所占内存长度是各成员占内存长度之和,而共用体变量所 占的内存长度等于最长的成员的长度。此题结构体变量a中成员c为整型占2 个字节,共用体变量u最大长度为4个字节,应选C。二、判断题1、错误2、正确3、错误4、正确5、错误6、正确7、
4、错误8、错误9、正确10、错误三、编程题1、#includestdio. h int fun(int a)int i;if(a=2) return 1;i=2;while(a%i) !=0&i #includevoid main ()int i;float sum=100.0,h=50;for(i=2;i=10;i+)sum=sum+2*h;h=h/2;)printf (f, %fn/z, sum, h);)3、 ttinclude struct stuff(int stuffID;float bonus;a5;int main ()(int i;float min;for(i = 0; i
5、5; i+)scanf (z/%d %f,&ai. stuffID, &ai. bonus);min = a0. bonus;for(i = 1; i = ai. bonus) min = ai. bonus;)for(i = 0; i int i;float f;正确的语句是 OA、(int f)%iB、int(f)%iC、 int(f%i)D、(int)f%i3、c语言提供的预处理功能包括条件,其基本形式为:#X XX标识符程序段1 ftelse程序段2 ftendif这里的XXX可以是。A、 define 或 includeB、 ifdef 或 includeC、indef 或 ifnd
6、ef 或 defineD ifdef 或 ifndef 或 if4、以下程序的输出结果是 o#includemain ()(int a=l,b=3;if (+a0)&! (b-=0) printf (d, %dn,a, b);else printf (d, %dn,b, a);A、2,2B、1,3C、3,2D、3, 15、程序的基本控制结构是 oA、顺序结构,多分支结构和单分支结构B、顺序结构,支结构和循环结构C、顺序结构,选择结构和循环结构。D、单行结构和多行结构。6、如果用数组名作为实参,那么传递给形参的是 oA、数组的首地址B、第一个元素的值C、数组元素的个数D、数组中全部元素的值7、正
7、确表示条件100WxW300的c表达式是 oA、100=x=100, x=100&x=100&x *11、定义如下一维数组:int a5, *p;那么以下描述错误的选项是A、表达式p=p+l是合法的B、表达式a=a+l是合法的C、表达式p-a是合法的D、表达式a+2是合法的12、c语言中不可以嵌套的是 oA、函数调用B、函数定义C、循环语句D、选择语句13、假设有条件表达式(exp)a+:b,那么以下表达式中能完全等价于表达式(exp)的是 OA、 (exp=O)B、 (exp!=O)C、 (exp=l)D、 (exp!=l)14、si和s2已正确定义并分别指向两个字符串。假设要求:当si所指
8、串大于s2 所指串时,执行语句s;那么以下选项中正确的选项是。A、if(sls2)S;B、if(strcmp(si, s2)S;C、if (strcmp(s2, si) 0) S;D if (stremp(si, s2) 0) S;15、下面的程序main ()int x=3, y=0, z=0;if (x=y+z)printf(* * * *);else printf(# # # #);A、有语法错误不能通过编译B、输出* * * *。C、可以通过编译,但是不能通过连接,因而不能运行。D、输出# # # #。16、以下选项中与if (a=l)a+; else a=b;语句功能不同的语句是A、
9、 switch(a)ease 0: a=b; break;default: a+;B switch(a=l)case 0: a+:default: a=b;C、 switch(a)default: a=b; break;case 1: a+;D、a=(a=l) (a+): b17、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量bo 那么不能把结点b连接到结点a之后的语句是 ostruct nodechar data;struct node *next;)a, b, *p=&a, *q=&b;A、 3475B、 3574C、 1234D、 123518、有以下程序int a=2
10、;int f (int *a) return (*a)+; main() (int s=0;(int a=5; s+=f(&a);)s+=f(&a);printf(%dn,s);)执行后输出结果是。A、10B、9C、7D、819、假设有说明int a34;那么a数组元素的非法引用是A、123B、2.5C、-12D、 156320、以下选项中,能定义m为合法的结构体变量的是 oA、 typedef struct abc double a;char b; m;B、 struct double a;char b;m;C、 struct ABC double a;char b; ABC m;D typ
11、edef ABC( double a;char b; ABC m;二、判断题(每题2分,共20分)()1、全局变量本身就是静态存储方式。()2、字符数组定义后,不能用赋值语句将一字符串常量或字符数组直接赋给 一个字符数组。()3、在c语言中,可以将主调函数放在被调函数的后面,省略函数的声明。()4、while语句的一般形式如下,其中的循环体语句只能是一条语句。()5、c语言中字符串的结束符是(r。()()6、c程序可以省略main()函数。()7、当字符数组中的初值个数小于数组长度时,没有赋值的元素会默认赋值 为空字符。0()8、在标准c语言中,所有函数在调用之前都要进行声明。()9、在定义函
12、数时,假设函数类型为 void,那么表示该函数没有返回值;假设 函数参数为 void,那么表示该函数没有参数。()()10、全局变量的作用域是整个源程序文件。三、编程题(每题分,共40分)1、编写程序:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆 序打印出各位数字。(此题10分)2、编写程序:输出Fibonacci序列的前10个数,前两项键盘输入(此题14 分)3、编写程序:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 (包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件stud中。功能如下: 请输入5个同学的信息:学生号,姓名,
13、3门成绩:1 a 60 70 802 b 60 80 903 c 59 39 894 e 56 88 985 d 43 88 78翻开stud文件,内容如下1 a 60 70 80 702 b 60 80 90 763 c 59 39 89 624 e 56 88 98 805 d 43 88 78 69 (此题 16 分)参考答案一、单项选择题1、C2、D3、D4、C【解析】解答此题的关键在于读懂if语句条件中的表达式。初始时a=l, b=3,所以+a=20,因此+a0为假,因为是进行逻辑与(&)运算,在&的 第一个运算对象为假的前提下不用判断第二个运算对象的真假,就可以直接得 出整个表达式
14、的值为逻辑0,所以直接执行else语句。5、C6、A【解析】将数组传递给函数时,实际上是传递数组第一个元素的地址给函数, 即数组的首地址。7、D【解析】请仔细阅读交规难度:简单8、C9、C10、D11、B12、B13、B【解析】条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中 惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达 式3其求解顺序是:先求解表达式1,假设为非0(真)那么求解表达式2,此时表达式 2的值就作为整个条件表达式的值。假设表达式1的值为0(假),那么求解表达式 3,表达式3的值就是整个条件表达式的值。并且注意+、一的用法。14、D15、D1
15、6、B【解析】if else语句的含义是,如果变量a的值等于1,变量a的值加1,否 那么,那么把变量b的值赋给变量a。在此题的4个选项中,与其含义不同的是选 项B),因为没有break语句,当a=l的时候,会顺序执行两条语句,最终结果 是将b的值赋给a。17、BC、5,5D、2,55、有以下程序:#includemain ()int x=8;for (;xO;x-)(if (x%3)printf (%d, , x一);continue;printf (%d, , 一x);)程序的运行结果是 oA、7,4,2B、8, 7, 5,2C、9, 7, 6, 4D 8, 5, 4, 26、有如下函数定义
16、; void func (int a, int & b) (a+;b+;)假设执行代码段:int x=0, y=l;func(x, y);那么变量X和y的值分别是 oA、0 和 1B、1 和 1C、0和 2D、1 和 27、设有int x=ll;那么表达式(x+*l/3)的值是A、3B、4【解析】在被调用过程中,有这样的语句“Static Sum,因为变量Sum是局 部变量,局部变量除了可以用Dim语句声明外,还可用Static语句将变量声明 为静态变量,它在程序运行过程中可保存变量的值,这就是说每次调用过程 时,用Static说明的变 量保持原来的值。具体过程分析如下:调用P(l), 所以在
17、被调过程中N=l,执行For Next循环,P(l)=Sum=l;调用P(2),所以 在被调过程中N=2,执行For Next循环,P(2)=Sum=4;调用P(3),所以在被 调过程中N=3,执行For Next循环,P(3)=Sum=10;调用P(4),所以在被调过 程中N=4,执行For Next循环,P(4)=Sum=20;不难看出,最后输出的结果S 值应为1+4+10+20=35,所以选项C)正确。18、C19、B【解析】A)选项必须输入6个字母或数字(数字也能输入,不符合),C)选项可 以输入6个任意字符,也不符合题议,D)选项可以选择输入6个数据或空格, 不符合题意。20、B二、
18、判断题1、正确2、正确3、正确4、错误5、正确6、错误7、正确8、错误9、正确10、错误三、编程题1 include int main() long a, b, c, d, e, x;printf (请输入5位数字:); scanf&x);a=x/10000;/ *分解出万位*/b=x%10000/1000;/* 分解出千位*/c=x%1000/100;/ * 分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;if (a!=0)e=x%10;if (a!=0)/*分解出个位*/printf (为5位数,逆序为:%ld %ld %ld %ld %ldn,e, d, c, b,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 长春 大学 语言 题库 答案
限制150内