长春某大学C语言题库(八卷)及答案.pdf
C语言题库(一)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共4 0分)1、用 高 级 程 序 设 计 语 言 编 写 的 程 序,OA、计算机能直接执行B、具有良好的可读性和可移植性C、执行效率高,但可读性差D、依赖于具体机器,可移植性差2、若有定义语句:i nt a=1 0;d ou b le b=3.1 4;,则表达式 a +a+b 值得类型是 oA、ch a rB、i ntC、d ou b leD f loa t3、下 面 程 序 的 输 出 是(口 表示一个空格)i nt a=3 3 6 6;pr i nt fCI%0 8d|a);A、|-0 0 0 3 3 6 6|B、|0 0 0 0 3 3 6 6|C、1 3 3 6 6 D|D、输出格式非法4、运行以下程序后,如果从键盘上输入ch i na#回车,则输出结果为Si nclu d e ma i n()(i nt v l=0,v 2=0;ch a r ch;w h i le (ch=g e t ch a r()!=#)s w i t ch(ch)(ca s e a :ca s e h :d e f a u lt:v l+;ca s e o:v 2+;)pr i nt f (%d,%d n”,v l,v 2);)A,2,0B、5,0C 5,5D、2,55、有以下程序:#i nclu d e ma i n()(i nt x=8;f or(;x 0;x-)(i f(x%3)(pr i nt f (%d,x-);cont i nu e;)pr i nt f (%d,一x);程序的运行结果是 OA、7,4,2B、8,7,5,2C、9,7,6,4D、8,5,4,26、有如下函数定义;v oi d f u nc(i nt a,i nt&b)a+;b+;)若执行代码段:i nt x=0,y=l;f u nc(x,y);则变量x和y的值分别是 oA、0 和 1B、1 和 1C、0和 2D、1 和 27、设有i nt x=l l;则表达式(x+*l/3)的值是A、3B、4C、1 1D,1 28、设有如下定义:ch a r a a 2 20 =a b e d ,a b e d );则以下说法中错误的是.A、a a 是个二维数组,可以存放2 个 1 9 个字符以下的字符串B、a a 是个二维数组,每行中分别存放了字符串 a b e d 和 ABCDC、a a O 可以看作是一维数组名D、a a O 0 可以看作是一维数组名9、下列内容是异常的含义的是 oA、程序编译或运行中发生的异常事件B、程序的语法错误C、程序编译错误D、程序预先定义好的异常事件1 0、字符串 a b c 的长度是 oA、1 1B、7C、5D、31 1、以下对一维数组a的正确说明是 oA、ch a r a (1 0);B、i nt a;C、i nt k=5,a k;D、ch a r a 3=ca,b,J c );1 2、以 下 程 序 的 输 出 结 果 是-#i nclu d e v oi d s w a p(i nt*a,i nt *b)(i nt*t;t=a;a=b;b=t;)ma i n()(i nt i=3,j=5,*p=&i,*q=&j;s w a p(p,q);pr i nt f(l%d%d ,*p,*q);A、23B、3 4C、3 5D、4 51 3 若有定义:i nt*p,x=0,*p,p=&x;,则语句 pr i nt f (%d n,*p)的输出结果是 OA、随机值B、0C、x的地址D、P的地址1 4、设函数定义如下:f loa t f l(f loa t a,f loa t b)(r e t u r n(a+b);若有 f loa t x=l.1,y=2.2;,则以下语句中正确的函数调用是 oA、pr i nt f f 1();B、pr i nt f f l(&x,);C、pr i nt f f l(*x,*);D pr i nt f f l(x,);1 5、有以下程序:#i nclu d e ma i n()ch a r cl,c2,c3,c4,c5,c6;s ca nf (%c%c%c%c”,&cl,&c2,&c3,&c4);c5=g e t ch a r ();c6=g e t ch a r();pu t ch a r(cl);pu t ch a r(c2);pr i nt f (%c%c n”,c5,c6);程序运行后,若从键盘输入(从第1 1 列开始)1 23 V 回 车,4 5 6 7 8V 回车 则输出结果是 oA、1 26 7B、1 25 6C、1 27 8D、1 24 51 6、执行循环语句后,i 变 量 的 值 是 i=4;w h i le(i-);p rin tfi);A、0B、-1C、1D、有错误1 7、下面定义结构变量的语句中错误的是一A、s t r u ct s t u d e nt i nt nu m;ch a r na me 20;s;B、s t r u ct i nt nu m;ch a r na me 20;s;C、s t r u ct s t u d e nt i nt nu m;ch a r na me 20;);s t r u ct s t u d e nt s;D、s t r u ct s t u d e nt i nt nu m;ch a r na me 20;);s t u d e nt s;1 8、以下程序的输出结果是.#i nclu d e f u n(i nt x,i nt y,i nt z)(z=x*x+y*y;)v oi d ma i n()(i nt a=3 1;f u n(5,2,a);pr i nt f (级d”,a);)A、0B、29C,3 1D、无定值1 9、以下能正确定义二维数组的是 0A、i nt a 3 =1,2,3,4,5,6 ;B、i nt a 3 =2*3 ;C、i nt a 3 =;D、i nt a 3=,3,4 ;20、变量a 所占的内存字节数是 ou ni on u(ch a r s t 4;i nt i;long 1;);s t r u ct A i nt c;u ni on u;a;A、4B、5C、6D、8二、判断题(每小题2分,共20分)()1、宏定义的作用域为从源程序开始起到源程序结束止。()2、下列条件:-3-3&x V 3 o ()()3、定义在ma i n函数后的任何函数都需在ma i n中进行函数声明()4、以下程序段中,当 i 大于1 0 或者s 大于20 时,循环结束。s =0;i =1;w h i le(i 20)b r e a k;)i+;)()5、若有说明语句ch a r *p=i t i s mi ne ”则 p 变量中存放的是整个字符串()6、f s e e k函数一般用于二进制文件。()7、指针变量可以指向数组,但不允许指向数组元素。()8、m a i n。函数也是c 语言的关键字()()9、在 c 语言中,字符数组可以存放字符串。()()1 0、文本文件和二进制文件都可以用e of 作为文件结束标志。()三、编程题(每小题分,共4 0分)1、请编一个函数i nt f u n(i nt a),它的功能是:判断a 是否是素数,若 a 是素数 返 回 1;若不是素数,返回0。a的值由主函数从键盘读入。(本题1 0 分)2、一个皮球从1 0 0 米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第1 0 次落地时,共经过了多少米,第 1 0 次反弹多高?(本题1 4 分)3、有以下职工信息,使用结构体数组存储这些信息,从键盘输入5 条记录,之后在屏幕上依次输出职工信息。s t r u c t s t u f f i nt s t u f f I D;职工编号f l oa t b onu s;工资);【输入形式】5条职工信息,分行输入,数据间空格隔开【输出形式】分行输出5 条职工信息和最低工资,每行数据均使用1 个空格分隔【输入样例】1 0 0 1 85 4 0.5 91 0 0 2 6 3 4 5.4 51 0 0 3 3 5 0 0.6 51 0 0 4 4 898.861 0 0 5 5 3 4 5.80【输出样例】每行数据均使用一个空格分割,分五行输出1 0 0 1 85 4 0.5 9m i nB onu s =3 5 0 0.6 5 (本题 1 6 分)1 0 0 21 0 0 36 3 4 5.4 53 5 0 0.6 51 0 0 41 0 0 54 898.865 3 4 5.80参考答案一、单项选择题1、B【解析】用高级程序设计语言编写的程序具有良好的可读性和可移植性。2、C3、C4、C5、D【解析】本题考查f or 循环语句。x=8,f or 循环条件为真,8%3=2,不等于0,则 i f 条件表达式为真,执行第一个输出语句,先输出x的值8,然后将x的值减 1,此时x=7。然后执行c ont i nu e 语句结束本次循环。执行x 表示式,得x=6,f or 循环条件为真.6%3=0,则 i f 条件表达式为假,执行第二个输出语句,先将x的值减1 得 x=5,然后输出x的值5。执行X 表示式,得 x=4,f or循环条件为真,4%3=1,不等于0,则 i f 条件表达式为真,执行第一个输出语句,先输出x的值4,然后将x的值减1,此时x=3。然后执行c ont i nu e 语句结束本次循环。执行x 表示式,得 x=2,f or 循环条件为真,2%3=2,不等于0,则 i f 条件表达式为真,执行第一个输出语句,先输出x的值2,然后将x的值减1,此时x=l。执行x 表示式,得x=0,f or 循环条件为假,循环结束。6、C【解析】本题考查的知识点是:函数参数的传递方式。C的默认参数传递方式是传值,即将实参值的副本传递(拷贝)给被调用函数的形参。如果需要传地址,可通过传递指针、引用或数组类型的参数来实现。传值时,对形参的改变不会影响到实参;而传地址,则会同时改变实参。本题中形参a是普通参数,即传值调用,函数中对a 增 1 不会影响到实参x的值;而形参b 是引用,即传址调用,函数中对b 增 1 同时也改变了实参y的值(y 也增1 了)。故最终结果是 0 和 2,应该选择C。7、A【解析】当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增加1,所以表达式(x+*l/3)相当于(1 1*1/3),取整后为3。8、D9、A【解析】异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,它会引起程序的中断,影响程序正常运行。1 0、B1 1、D1 2、C【解析】本题主要考查的是函数参数的传递。在C语言中,函数参数的传递是“传值”的,即复制一份实参给形参,形参和实参是完全没有关系的两个变量。所以在函数内部改变形参变量,并不会影响到函数外部的实参。要实现“传址”调用,必须通过指针。因为将实参指针内容复制给了形参指针后,两个指针变量虽然没有任何关系,但它们指向的却是同一个内存地址,当改变形参指针所指向的那个内存地址的内容时,实参指针所指向的内容也就同时被改变了,从而实现了“传址”调用。但是,并不是说只要函数参数是指针,那肯定 就 是“传址”调用。故选择0。1 3、B1 4、D1 5、D1 6、B1 7、D1 8、C1 9、A2 0、C【解析】结构件变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故 选C。二、判断题1、错误2、正确3、错误4、正确5、错误6、正确7、错误8、错误9、正确1 0、错误三、编程题1、#i n c l u d e s t d i o.h i n t f u n(i n t a)(i n t i;i f(a=2)r e t u r n 1;i=2;w h i l e(a%i)!=0&i =s q r t(f l o a t)a)i+;i f(a%i=0)p r i n t f (z z%d i s n o t a p r i m e!”,a);r e t u r n 0;)p r i n t f (z/%d i s a p r i m e!z,,a);r e t u r n 1;)m a i n ()i n t x;p r i n t f C n p l e a s e e n t e r a n u m b e r/);s c a n f (%d ,&x);p r i n t f (z z%d nz,,f u n(x);2、#i n c l u d ev o i d m a i n()(i n t i;f l o a t s u m=1 0 0.0,h=5 0;f o r(i=2;i =1 0;i+)(s u m=s u m+2*h;h=h/2;)p r i n t f (%f,%f n ,s u m,h);)3、t t i n c l u d e s t r u c t s t u f f(i n t s t u f f I D;f l o a t b o n u s;a 5 ;i n t m a i n ()i n t i;f l o a t m i n;for(i=0;i 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 a,c2、已知 i n t i;f l o a t f;正确的语句是 oA、(i n t f)%iB、i n t(f)%iC、i n t(f%i)D、(i n t)f%i3、c 语言提供的预处理功能包括条件,其基本形式为:#X XX标识符程序段1#e l s e 程序段2#e n d i f 这里的XXX可以是。A d e f i n e 或 i n c l u d eB、i f d e f 或 i n c l u d eC、i n d e f 或 i f n d e f 或 d e f i n eD、i f d e f 或 i f n d e f 或 i f4、以下程序的输出结果是 o#i n c l u d e m a i n O(i n t a=l,b=3;i f(+a 0)&!(b 一=0)p r i n t f(z,%d,%d n ,a,b);e l s e p r i n t f(,z%d,%d n,z,b,a);)A、2,2B、1,3C、3,2D、3,15、程序的基本控制结构是 oA、顺序结构,多分支结构和单分支结构B、顺序结构,支结构和循环结构C、顺序结构,选择结构和循环结构。D、单行结构和多行结构。6、如果用数组名作为实参,则 传 递 给 形 参 的 是。A、数组的首地址B、第一个元素的值C、数组元素的个数D、数组中全部元素的值7、正确表示条件100 x W 3 00的 c表达式是 oA、100=x =100,x =100&x =100&x s 2)S;B、i f(s t r c m p(s i,s 2)S;C i f(s t r c m p(s 2,s i)0)S;D、i f(s t r e m p (s i,s 2)0)S;15、下面的程序m a i n()(i n t x=3,y=0,z=0;i f(x 二 y+z)p r i n t f(*);e l s e p r i n t f(z,#);)A、有语法错误不能通过编译B、输出*oC、可以通过编译,但是不能通过连接,因而不能运行。D、输出#。16、以下选项中与i f(a=l)a+;e l s e a=b;语句功能不同的语句是A、s w i t c h(a)e a s e 0:a=b;b r e a k;d e fa u l t:a+;B、s w i t c h(a=l)c a s e 0:a+:d e fa u l t:a=b;C、s w i t c h(a)d e fa u l t:a=b;b r e a k;c a s e 1:a+;D、a=(a=1)(a+):b17、有以下结构体说明和变量的定义,且指针p 指向变量a,指针q 指向变量b o则不能把结点b 连接到结点a 之后的语句是 os t r u c t n o d ec h a r d a t a;s t r u c t n o d e *n e x t;)a,b,*p=&a,*q=&b;A,3 4 7 5B、3 5 7 4C、1 234D、1 23518、有以下程序i n t a=2;i n t f(i n t *a)(r e t u r n (*a)+;)m a i n()i n t s=0;i n t a=5;s+=f(&a);)s+=f(&a);p r i n t f(%d n”,s);)执 行 后 输 出 结 果 是。A、10B、9C、7D、819、若有说明i n t a 3 4 ;则a 数组元素的非法引用是A、12 3B、2.5C、-12D、15 6 32 0、以下选项中,能定义m 为合法的结构体变量的是A、t y p e d e f s t r u c t a b c d o u b l e a;c h a r b;m;B、s t r u c t d o u b l e a;c h a r b;m;C、s t r u c t A B C d o u b l e a;c h a r b;A B C m;D、t y p e d e f A B C d o u b l e a;c h a r b;A B C m;二 判断题(每小题2分,共20分)()1、全局变量本身就是静态存储方式。()2、字符数组定义后,不能用赋值语句将一字符串常量或字符数组直接赋给一个字符数组。()3、在 c 语言中,可以将主调函数放在被调函数的后面,省略函数的声明。()4、w h i l e 语句的一般形式如下,其中的循环体语句只能是一条语句。()5、c 语言中字符串的结束符是 0。()()6、c 程序可以省略m a i n ()函数。()7、当字符数组中的初值个数小于数组长度时,没有赋值的元素会默认赋值为空字符。()()8、在标准c 语言中,所有函数在调用之前都要进行声明。()9、在定义函数时,若函数类型为vo i d”,则表示该函数没有返回值;若函数参数为vo i d”,则表示该函数没有参数。()()1 0、全局变量的作用域是整个源程序文件。三 编程题(每小题分,共4 0分)1、编写程序:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。(本题1 0 分)2、编写程序:输出F i b o n a c c i 序列的前1 0 个数,前两项键盘输入(本题1 4分)3、编写程序:有五个学生,每个学生有3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 s tud”中。功能如下:请输入5 个同学的信息:学生号,姓名,3 门成绩:1 a 60 70 802 b 60 80 903 c 59 39 894 e 56 88 985 d 43 88 78打 开 s tud 文件,内容如下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(本题1 6分)参考答案一、单项选择题1、C2、D3、D4、C【解析】解答本题的关键在于读懂i f 语句条件中的表达式。初始时a=l,b=3,所以+a=2 0,因此+a V O 为假,因为是进行逻辑与(&)运算,在&的第一个运算对象为假的前提下不用判断第二个运算对象的真假,就可以直接得出整个表达式的值为逻辑0,所以直接执行e ls e 语句。5、C6、A【解析】将数组传递给函数时,实际上是传递数组第一个元素的地址给函数,即数组的首地址。7、D【解析】请仔细阅读交规难度:简单8、C9、C1 0、D1 1、B1 2、B1 3、B【解析】条件运算符要求有3 个操作对象,称三目(元)运算符,它是C 语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1 7表达式2:表达式 3其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2 的值就作为整个条件表达式的值。若表达式1 的值为0(假),则求解表达式3,表达式3 的值就是整个条件表达式的值。并且注意+、一的用法。1 4、D1 5、D1 6、B【解析】i f e ls e 语句的含义是,如果变量a的值等于1,变量a的值加1,否则,则把变量b的值赋给变量a。在本题的4 个选项中,与其含义不同的是选项 B),因为没有b r e a k语句,当a=l 的时候,会顺序执行两条语句,最终结果是将b 的值赋给a。17、B【解析】在被调用过程中,有这样的语句“S t at ic S um”,因为变量S um 是局部变量,局部变量除了可以用D im 语句声明外,还可用S t at ic 语句将变量声明为静态变量,它在程序运行过程中可保留变量的值,这就是说每次调用过程时,用 S t at ic 说明的变量保持原来的值。具体过程分析如下:调用P(l),所以在被调过程中N=l,执行F o r N e xt 循环,P(l)=S um=l;调用P(2),所以在被调过程中N=2,执行F o r N e xt 循环,P(2)=S um=4;调用P(3),所以在被调过程中N=3,执行F o r N e xt 循环,P(3)=S um=10;调用P(4),所以在被调过程中N=4,执行F o r N e xt 循环,P(4)=S um=20;不难看出,最后输出的结果S值应为1+4+10+20=35,所以选项C)正确。18、C19、B【解析】A)选项必须输入6 个字母或数字(数字也能输入,不符合),C)选项可以输 入 6 个任意字符,也不符合题议,D)选项可以选择输入6 个数据或空格,不符合题意。20、B二、判断题1、正确2、正确3、正确4、错误5、正确6、错误7、正确8、错误9、正确10、错误三、编程题1、S in c l ud e in t m ain()(l o n g a,b,c,d,e,x;p rin t f(“请输入5 位数字:”);s c an f(zz%l d/z,&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if(a!=0)p rin t f(为5位数,逆序为:e l s e if(b!=0)p rin t f(为 e l s e if(c!=0)p rin t f(为 e l s e if(d!=0)p rin t f(为 e l s e if(e!=0)p rin t f(为4位数,逆序为:位数,逆序为:位数,逆序为:位数,逆序为:321%l d%l d%l d%l d%l d n,e,d,c,b,a);%l d%l d%l d%l d n/z,e,d,c,b);%l d%l d%l d n,/,e,d,c);%l d%l d n,e,d);%l d n,/,e);2、#in c l ud e m ain()(in t a10,i,j;fo r(i=O;i 2;i+)s c an f(d,&ai);fo r(i=2;i=9;i+)ai=aE i-l+ai-2;fo r(i=0;i =9;i+)p rin t f(%d t,ai);ge t c h();3、#in c l ud e#in c l ud e t yp e d e f s t ruc t in t I D;in t m at h;in t E n gl is h;in t C;in t av argrad e;c har n am e 20;S t u;in t m ain()(F I L E*fp;S t u s t u5;in t i,av argrad e=0;p rin t f(请输入5个同学的信息:学生号,姓名,3门成绩:n);for(i=0;i 5;i+)scanf(z,%d%s%d%d%dzz,&(stui.ID),stui.name,&(stui.math),&(stui.English),&(stui.C);stui.avargrade=(stui.math+stui.English+stui.C)/3;)if(fp=fopen(stud,w)=NULL)(printf(error:cannot open file!n,z);exit(0);)for(i=0;i c har c 7 =,s,,,t,,,r,,,D c har c 7 =,s t rin g,;3、设有定义:in t k=l,m=2;fl o at,i,n ,g ;i ,n ,g ,0 ;f=7;,则以下选项中错误的表达式是A、k=k =kB、-k+C、k%in t(f)D k =f =m4、下列程序的输出结果是#in c l ud e m ain ()(in t a=0,b=l,c=2;if(+a 0|+b 0)+c;p rin t f(d,%d,%d,a,b,c);)A、0,1,2B、1,2,3C、1,1,3D、1,2,25、有以下程序t t in c l ud e m ain ()in t i,j,m=l;fo r(i=l;i 0;j)(if(i*j 3)bre ak;m*=i*j;)p rin t f(m=%d n ,m)程 序 运 行 后 的 输 出 结 果 是。A、m=6B、m=2C、m=4D、m=56、设有数据定义语句 in t a200;”,下列数组元素引用中下标不越界的是A、a-l B、a201C、a0D、a2007、以下程序的运行结果是 om ain()(in t a=5,p;if(p=a!=0)p rin t f(n%d,p);e l s e p rin t f(%d n”,p+2);)A、5B、1C、0D、编译有错,无结果。8、设 in t a10,*p=a;数组元素a4的正确引用是A、*(p+4)B、p+4C、*p+4D、a+49、计算机的中央处理器每执行一条(),就完成一步基本运算和判断。A、命令B、指令C、程序D、语句1 0、下列选项中c 语言中不合法的字符串常量的是 0A、B、yC、n n D、“ABCD x 6d1 1、有语句 ch a r s t r l 1 0 ,s t r 2 1 0 =/ch i n a,/);则能将字符串ch i n a 赋给数组s t r l 的 正 确 语 句 是。A、s t r l=ch i n a ;B,s t r cp y(s t r l,s t r 2);C、s t r l=s t r 2;D、s t r cp y(s t r 2,s t r l);1 2、若调用一个函数,且此函数中没有r e t ur n 语句,则正确的说法是:该函数A、没有返回值B、返回若干个系统默认值C、能返回一个用户所希望的值D、返回一个不确定的值1 3、表达式 5 -1 的值是 oA、整数4B、字符4C、表达式不合法D、字符61 4、若有说明:i n t a 口 3 =1,2,3 ,4,5,6,7 ;则数组a的第一维的大小为:()A、2B、3C、4D、无确定值1 5、以 下 程 序 的 执 行 结 果 是.m a i n()i n t n um =0;w h i l e(n um =2 )n um+;p r i n t f(v%d,n um );)A、0,1,2B、1,2,C、1,2,3,D、1,2,3,4,1 6、下 面 程 序 的 输 出 结 果 是.#i n cl ude v o i d m a i n()(i n t x=3;do(p r i n t f C%d”,x-=2);)w h i l e(!(-x);)A、1B、1 -2C、3 0D、是死循环1 7、以下叙述中正确的是 oA、即使是同类型的结构体变量,也不能进行整体赋值B、结构体变量的地址不能作为实参传给函数C、结构体数组名不能作为实参传给函数D、结构体中可以含有指向本结构体的指针成员1 8、下面程序输出的结果是 om a i n()(i n t x=1 0 0,a=1 0,b=2 0,o k l=5,o k 2=0;i f(a b)i f(b!=1 5)i f(!o k l)x=-i;e l s e i f(o k 2)x=1 0;x=l;p r i n t f C%d nz,,x);A、-1B、0C、1D、不确定的值1 9、下列定义数组的语句中不正确的是一A、s t a t i c i n t a 2 3 =1,2,3,4,5,6);B s t a t i c i n t a 2 3 =1 ,4,5 ;C、s t a t i c i n t a 3 =1 ,4 ;D s t a t i c i n t a =1,2,3 ,4,5,6 ;2 0、下面哪个不是关键字?A、i n tB、s t r uctC、de f i n eD、co n t i n ue二、判断题(每小题2分,共20分)()1、符号a 和 a 的 区 别 是 a 是字符串常量,占2 个字节;而 a 是字符常量,占1 个字节。()()2、f o r 语句的一般形式如下,其中的表达式1 只执行一次。()3、在标准c 语言中,共用体变量中的各成员是共同占用一块存储空间()4、若变量已正确定义,以下w h i l e 循环结束时,i 的值为1 1。i =1;w h i l e (i 0,所以条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算对象的真假,即不进行+b 操作,就可以直接得出整个表达式的值为逻辑1,执行下面的+c。5、6、7、8、ACBA9、B【解析】一条指令就是给计算机下达的一道命令,一条指令包括操作码和地址码(或称操作数),本题的答案为B。1 0、B【解析】字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是合法的字符串常量,而选B)是一个字符常量。I k B1 2、A1 3、A1 4、B1 5、C1 6、B1 7、D【解析】同类型的结构体变量可以进行整体赋值。结构体变量的地址可以作为实参传递给函数。结构体数组in g可以作为实参传递给函数。结构体成员可以包含指向本结构体的指针成员。本题答案为D选项。1 8、C【解析】如果没有大括号,e ls e 总是与它上面的最近的if 配对。所以本题中的e ls e if(o k2)是与if(!o kl)配对的,首先因为a b 成立所以进一步判断b!=1 5 也成立,再进一步判断!o kl,为假,不执行子句X=T;继续判断o k2 是否为真,o k2 亦为假,故子句x=1 0;也不执行,最后让x=l;输出x,所以结果应该选择C。1 9、D2 0、C二、判断题1、正确2、正确3、正确4、错误5、错误6、正确7、正确8、正确9、正确1 0、错误三、编程题1、S in c lu d ev o id ma in()f lo a t x,y,r=0.0 2 2 5;in t i,n;p r in t f (”请输入存款本金x和存款年数n:);s ca n f&x,&n);y=x;f o r (i=l;i=n;i+)y=y*(l+r);p r in t f(%f n,y);)2、程序分析:抓住分子与分母的变化规律。程序源代码:m a in()(in t n,t,n u m b e r=2 0;f l o a t a=2,b=l,s=0;f o r (n=l;n=n u m b e r;n+)(s=s+a/b;t=a;a=a+b ;b=t;/*这部分是程序的关键*/p r in t f (,zs u m is%9.6 f nz/,s);3、#include#include#includestruct listchar words100;int num;struct list*next;);typedef struct list node;typedef node*link;void count(char*str)link ptr,head,ptrn,headnew;int i=0,j=0,prei=0;char temp20;ptr=(link)malloc(sizeof(node);head=ptr;ptr-next=NULL;do if(*(str+i)=,ll*(str+i)=,0,)tempj=Q9;ptr=head;while(ptr-next!=NULL)if(strcmp(ptr-next-words,temp)=0)ptr-next-num+;break;)else ptr=ptr-next;)if(ptr-next=NULL)ptr-next=(link)malloc(sizeof(node);strcpy(ptr-next-words,temp);ptr-next-num=l;ptr-next-next=NULL;)if(*(str+1)=0)break;j=0;i+;continue;tempj+=stri+;while(1);ptrn=(1 ink)malloc(sizeof(node);headnew=ptrn;ptrn-next=NULL;ptr=head-next;ptrn=headnew;while(head-next!=NULL)while(ptrn-next!=NULL&ptrn-next-num=ptr-num)ptrn=ptrn-next;head-next=ptr-next;ptr-next=ptrn-next;ptrn-next=ptr;ptr=head-next;ptrn=headnew;)ptr=headnew-next;while(ptr!=NULL)puts(ptr-words);printf(z,%dnz,,ptr-num);ptr=ptr-next;)int mainO char str500;gets(str);count(str);C语言题库(四)(总分100分,考试时长90分钟)一单项选择题(每小题2分,共4 0分)1、如 下 说 法 不 正 确 的 是。A、ca+b 等效于 c(a+b)B、若 a,b均为真,则 a|b 为真C、表达式 c&d 的值为0D、逻辑运算符!比逻辑运算符|的优先级高2、下列语句中符合c 语言语法的赋值语句是 oA、a=7+b+c=a+7;B、a=7+b+=a+7;C、a=7+b,b+,a+7D a=7+b,c=a+7;3、表示关系1=l&x x=l a n d x=1 0 0C、l=x=l&x y&y!=0);C、if (x 0)x-e l s e y+;D、if (y 0);e l s e x+;5、有以下程序S in cl u de m a in ()(in t c;w hil e (c=g e t cha r ()!=n,)(s w it ch(c-*2 )(ca s e 0:ca s e 1:p u t cha r(c+4);ca s e 2:p u t cha r(c+4);b r e a k;ca s e 3:p u t cha r(c+3);de f a u l t:p u t cha r(c+2);b r e a k;)p r in t f(n);)从第一列开始输入以下数据,cr 代表一个回车符。2 4 7 3 cr 程序的输出结果是 oA、6 6 8 9 7 7B、6 6 8 9 6 6C、6 6 7 7 8 7 7 7D、6 6 8 8 7 6 66、对下述程序的判断中,正确的是 om a in()(cha r*p,s 2 5 6;P=