第 1 页:选择题 |
第 2 页:程序填空题 |
第 3 页:程序修改题 |
第 4 页:程序设计题 |
一、选择题
1有以下程序:
程序运行后的输出结果是( )。
A.IB.JC.KD.H
参考答案:B
参考解析:(”%e\n”,’A’+x),x=oxg(16)转为十进制x=9,因此prinff(”%e\n”,7A’+9),打印格式要求是%c,因此需要从字符A,按字母顺序向后偏移9个位置,可得结果为J。故答案为B选项。
2以下叙述中正确的是
A.两个字符串可以用关系运算符进行大小比较
B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)
C.C语言本身没有提供对字符串进行整体操作的运算符
D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
参考答案:C
参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。
3. 在C语言中,以 D 作为字符串结束标志
A、’\n’
B、’ ’
C、 ’0’
D、’\0’
4.下列数据中属于“字符串常量”的是( A )。
A、“a”
B、{ABC}
C、‘abc\0’
D、‘a’
若干个字符构成字符串
在C语言中,用单引号标识字符;用双引号标识字符串
选项B,C,分别用{}和’’标识字符串
选项D,标识字符。
5.已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是 B .
A、相同
B、x大于y
C、x小于y
D、以上答案都不对
C语言中,字符串后面需要一个结束标志位'\0',通常系统会自动添加。
对一维数组初始化时可采用字符串的形式(例如本题数组x),也可采用字符集合的形式(例如本题数组y)。在以字符串形式初始化时,数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位,因此数组x的长度为6;在以字符集合形式初始化时,数组y,仅存储集合中的元素,因此数组y长度为5
6若有定义语句:char a='\82';则变量a( )
A.说明不合法B.包含1个字符C.包含2个字符D.包含3个字符
参考答案:B
参考解析:char a='\82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。
7有以下程序
程序运行后的输出结果是
A.to Beijing!B.you to Beijing!C.Welcome you to Beijing!D.Beijing!
参考答案:A
参考解析:while函数判断P指针指向地址的内容是否和a指针指向地址的内容相等,如果不是,则移动指针p+1,当p指向*b字符串中的´y´时,和*a首地址元素相等,退出while语句后,P再向右移动a字符串长度+1个单位地址,此时P指向´t´,输出´t´及剩余的字符串,答案为A选项。
8若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是
A.EOFB.非0C.-1D.0
参考答案:D
参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项D正确。
8以下叙述中正确的是
A.只要适当地修改代码,就可以将do-while与while相互转换
B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环
C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句
D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句
参考答案:A
参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。
9设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为( )。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩
参考答案:C
参考解析:学号是学生表s的主键,课号是课程表c的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C。
10下列叙述中正确的是( )。
A.软件是程序、数据和文档
B.软件是程序和数据
C.软件是算法和数据结构
D.软件是算法和程序
参考答案:A
参考解析:计算机软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。故选A选项。
11在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )。
参考答案:B
参考解析:while语句中条件表达式E的值不为0即为真,认为满足条件,所以与B选项中表达式的含义正好相反,选择B选项。
12下面关于位运算符的叙述,正确的是
A.||表示“按位或”的运算
B.#表示“按位异或”的运算
C.&表示“接位与”的运算
D.~表示“按位异或”的运算
参考答案:C
参考解析:本题考查位运算。^为按位异或,|为按位或,~表示按位取反。所以C选项正确。
13有以下程序:
程序运行后的输出结果是( )。
参考答案:D
参考解析:在函数fun(char}a,char}b)中,wKle(·a==’·’)a++的功能是:如果}a的内容为‘}’,则a指针向后移动,直到遇到非‘+’字符为止,退出循环进入下一个while循环,在wlIile({b=}a){b++;a++;}中,把字符数
组a中的字符逐个赋给字符数组b。所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为“at b}}}★”。因此D选项正确。
14以下针对全局变量的叙述错误的是
A.用extern说明符可以限制全局变量的作用域
B.全局变量是在函数外部任意位置上定义的变量
C.全局变量的作用域是从定义位置开始至源文件结束
D.全局变量的生存期贯穿于整个程序的运行期间
参考答案:A
参考解析:在不同编译单位内用extern说明符来扩展全局变量的作用域,extem可以将全局变量作用域扩展到其他文件,而不是限制全局变量的作用域,答案为A选项。
15以下选项中错误的
A.a!=b与a=a!b等价
B.a^=b与a=a^b等价
C.a|=b与a=a|b等价
D.a&=b与a=a&b等价
参考答案:A
参考解析:A选项中,a!=b表示a不等于b时,运算结果为1,或者为0;而a=a!b是一种语法错误,!是非运算,且是单目运算符,只要求有一个操作数,故两者不等价,答案为A选项。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |