1[单选题] 以下叙述中正确的是
A.由printf输出的数据都隐含左对齐
B.scanf和printf是c语言提供的输人和输出语句
C.赋值语句是一种执行语句,必须放在函数的可执行部分
D.由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的
参考答案:C
参考解析:sCanf和printf是C语言提供的输入输出函数,所以B错误。由printf输出的数据都隐含右对齐,所以A错误。printf输出数据所占的宽度由系统决定,所以D错误。
2[单选题] 若有以下程序
则程序的输出结果是
A.17,289B.49,2401C.17,37D.49,289
参考答案:C
参考解析:本题考查宏定义,宏定义只是做个简单的替换,执行S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j$k+j=37,选项C正确。
3[单选题] 设有定义:int a=64,b=8;,则表达式(a&B)||(a&&B)和(a|B)&&(a||B)的值分别为
A.1和1B.1和0C.0和1D.0和0
参考答案:A
参考解析:常用的位运算符有:“~”按位求反,“<<”左移,“>>”右移,“&”按位与,“^”按位异或,“|”按位或。逻辑或运算符“||”,计算左表达式值,如果为真,则不计算右表达式,而整个表达式为真,若左表达式为假,再计算右表达式,然后做或运算。逻辑与运算符“&&”,计算左表达式值。如果为假则不计算右表达式。而整个表达式为假,若左表达式为真,再计算右表达式,然后做与运算。a=64=1000000B,b=8=1000B,a&b=0为假,a&b为真,(a&B)||(a&&B)为真,值为1。a|b=1001000B为真,a||b为真,则(a|B)&&(a||B)为真,值为1。A选项正确。
4[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.3,5B.5,3C.35,35D.8,8
参考答案:B
参考解析:运算符为按位异或运算符,即0^1=1,1‘0=1,1^1=0,∞=0;经计算可得X=x^y,Y=x^y,X=x^y,作用是交换x,Y的值。因此答案为B选项。
5[单选题] 下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定的
参考答案:D
参考解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B与C错误。
6[单选题] 以下结构体类型说明和变量定义中正确的是( )。
参考答案:B
参考解析:本题考查结构体的相关知识,选项A中struct REC后面不能有分号,C选项中typedef struct REC的后面也不能有分号,选项D中REC已经是结构体变量,不能当做结构体类型来使用。
7[单选题] 假定已建立以下链表结构,且指针P和q已指向如图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是( )。
A.p一>next=q一>next;flee(q);
B.p=q一>next;free(q);
C.p=q;free(q);
D.(*p).next=(幸q).next;ffee(p);
参考答案:A
参考解析:本题考查删除链表中的结点操作,其方法是将要删除结点的上个结点的下个结点指向要删除结点的下个结点,然后释放该要删除结点,所以选项A正确。
8[单选题] 若有以下程序
则程序的输出结果是
A.earlsB.ahabjC.ckbdlD.black
参考答案:D
参考解析:程序首先初始化字符数组a[5][10]和二维数组p[6][2]。执行for循环语句,循环变量i从0取值到5,得到字符数组W[]的值,并通过字符串输出函数pats进行输出操作。w[0]=a[0][1]、w[1]=a[1][5]、w[2]=a[0][0]、w[3]=a[0][2]、w[4]=a[1][4]、w[5]=a[4][4];因此最后字符数组W的结果为black。因此D选项正确。
9[单选题] 若有以下程序
则程序的输出结果是
A.3B.7C.6D.10
参考答案:D
参考解析:第—个if语句a!=1条件为假,所以执行dse后的语句r=1。第二个if语句b==2条件成立,执行r+=2,r的值变为3,第三个if语句c!=3条件为假,所以不做任何操作。执行下面的r+=3操作,r的值变为6。判断第四个讧条件,d==4条件成立,执行r+=4操作,结果为10。
10[简答题]N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考解析:
【考点分析】
本题考查:链表的操作,对链表的主要操作有以下几种:建立链表、结构的查找与输出、插入一个结点、删除一个结点。
【解题思路】
题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的和,再对和求平均分。遍历链表时应定义一个指向结点的指针P,因为“头结点”中没有数值,所以程序中让P直接指向“头结点”的下一个结点,使用语句STREC+P=h÷next。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |