2017年伊犁师范学院C语言考研复试核心题库
● 摘要
一、选择题
1. 有以下程序:
程序的运行结果是( )。
A.nice
B.verynice
C.nicegood
D.verygood
【答案】D
【解析】通过赋值运算使一个字符指针指向一个字符串常量:这种形式只是将字符串“nice”首地址赋给指针,而不是将指针原本指向的单元元素改变成“nice”。程序执行过程为:定义字符数 组并且初始化为“verygood”常量,定义指针ps 使其指向数组,使ps 指向数组第5个元素,使指针指向字符串 “nice”,这并不影响s 数组任何元素值,故输出字符串8为“verygood”。
2. 以下选项中叙述正确的是( )。
A. 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
B.C 语言源程序不编译也能直接运行
C. 使用N —S 流程图不能描述复杂算法
D. 计算机能够直接运行C 语言源程序,不必进行任何转换
【答案】A
【解析】编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,B 项错误。算法可以用各种描述方法进行描述,
能用流程图把算法的每一步都用一个矩形框来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述,无论算法复杂与否都流程图描述,C 项错误。C 语言源程序需要经过编译和连接生成目标文件和可执行文件后才能运行,D 项错误
3. 以下选项中,当x 为大于1的奇数时,值为0的表达式是( )。 A. B. C.
D.
【答案】D
【解析】x 为大于1的奇数,的值为1,为假。
4. 设有定义intx=2;,以下表达式中,值不为6的是( )。
A.x*=x+l
B.x++, 2*x
C.x*=(1+x)
D.2*x, x+=2
【答案】D
【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x),此时为3, 然后做x*=3, 即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。
5. 若有以下程序:
以下叙述中正确的是( )。
A. 可用S 定义结构体变量
B. 可用T 定义结构体变量
C.S 是struct 类型的变量
D.T 是structS 类型的变量
【答案】B
【解析】S 为结构体类型名,而T 为结构体变量名表。
6. 有如下程序:
!
程序运行后的输出结果是( )。
A.1123
B.123
C.0123
D.001
【答案】A
【解析】程序执行过程为:for 循环开始,第一次循环,输出i=l,判断i<4成立,输出i=l,
循环结束后i=2; 第二次循环,判断i<4成立,输出i=2, 循环结束后i=3; 第三次循环,判断i<4成立,输出i=3, 循环结束后i=4; 第四次循环,判断i<4不成立,退出循环。程序运行后的输出结果是1123, 故A 项正确。
7. 若已有定义语句:inta , b, c; ,且变量己正确赋初值,则以下选项中正确的赋值表达式是( )。
A.a= (b=c) +8;
B. (a=b) =c=9;
C.a= (b==c) = ‘A ’ ;
D.a+b=c+l;
【答案】A
【解析】A 项正确,将c 赋值给b 后又加上8, 然后再赋值给a ; B、D 项错误,赋值运算符左边必须是一个变量;C 项错误,
8. 有以下程序:
程序运行后的输出结果是( )。
A.ABCDEFGHIJKLMNOP
B.ABCDEFGHHKL
C.ABCD
D.AEIM
【答案】D
【解析】auto 变量又称为自动变量,函数定义变量时,如果没有指定存储类别,系统就认为所定义的变量具 有自动类别,D 选项正确。static 变量又称为静态变量,编译时为其分配的内存在静态存储区中。register 变量又称为寄存器变量,变量的值保留在CPU 的寄存器中,而不是像一般变量那样占内存单元。当定义一个函数时, 若在函数返回值的类型前加上说明符extern 时,称此函数为外部函数,外部函数在整个源程序中都有效。
是个表达式,语法错误。
二、设计题
9. 请编写一个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67, 则输出为asdafaaz67。注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干