1[单选题] 有以下程序
程序的输出结果是
A.0B.9C.3D.-12
参考答案:D
参考解析:等号“=”运算符是从右到左,且与“+、-、*”运算符比,优先级较低。首先计算a*a结果为9。执行a=a-9,a的值为-6,然后执行a+=a,即a=a+a=-6+(-6)。所以值为-12。
2[单选题] 有三个关系R、S和T如下:
则由关系R和s得到关系T的操作是( )。
A.自然连接B.并C.交D.差
参考答案:D
参考解析:关系T中的元组是关系R中有面关系s中没有的元组的集合,即从关系R中除去与关系s中相同元组后得到的关系T。所以做的是差运算。
3[单选题] 有如下嵌套的if语句:
以下选项中与上述if语句等价的语句是( )。
A.k=(aC.?b:C.;B.k=(a
参考答案:B
4[单选题]若有以下程序
则程序的输出结果是
A.China!B.to China!C.me you to China!D.you to China!
参考答案:D
参考解析:该程序首先定义*a和b[],并进行初始化。主函数中通过外层for循环语句,遍历字符数组b[],并且将符合if条件语句的字符赋给数组p;for内层循环语句,遍历字符数组a[]。再将符合if条件语句的结果输出。因此D选项正确。
5[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.1,2,1,2,2,4B.1,2,6,6,7,8C.1,2,2,4,2,4D.1,2,6,6,2,4
参考答案:A
参考解析:全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在subl()函数内,全局变量m,n是不可见的,在函数suhl()对m,n操作的是局部变量,对全局变量不产生影响。但在sub2()函数内,由于没有和全局变量变量重名,因此在此函数内,m,n是可见的。因此,第一个pfinff()打印的是全局变量m,n,故打印的是l,2,第二个pfinff(),调用suhl(),没有修改全局变量m,n.故打印的是l,2,第三个一村(),之前调用了sub2(),修改了全局变量m,n。因此,打印的是2,4。故答案为A选项。
6[单选题] 若有以下程序
则程序的输出结果是
A.1,3B.0,2C.1,2D.2,3
参考答案:A
参考解析:本题重点考查do…while语句及do…while的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),++b即变量b自增1后再参与运算.而a++则表示a参与运算后,再自增1。所以第一次循环结束后,b=1,a=-1。第二次循环后,b=2,a=0,这里先对while的判断为真,然后a+自增为零时,还会进行第三次循环。第三次循环后。b=3,a=1。因此A选项正确。
7[单选题] 有以下程序(注:字符a的ASCIl码值为97):
程序运行后的输出结果是( )。
A.789B.abeC.7890D.979899
参考答案:A
参考解析:因为小写字符a,b,c的ASCIl码值分别为97,98,99,而在do while循环语句中,每次对字符的ASCII码值取余数并输出,所以分别输出7,8,9。
8[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.3B.4C.5D.6
参考答案:B
参考解析:&按位与,如果两个相应的二进制位都为l,则该位的结果值为1,否则为0。l按位或,两个相应的二1进制位中只要有一个为l,该位的结果值为l。2的二进制为1 00000010,4的二进制为00000100,所以做或运算结果为1 00000110,该数与5即00000101做与操作结果为00000100,1即4。
9[简答题]下列给定程序中函数fun的功能是:逐个比较P.q所指两个字符串对应位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的数组中,形成一个新的字符串。
例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则C中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
参考解析:
(1)int k=0;
(2)whffe(+pll+q)
【考点分析】
本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。
【解题思路】
(1)变量k存放数组c的下标,因此应初始化为0。
(2)while循环语句的循环条件是判断两个字符串是否到达结尾。
10[简答题]给定程序modil.c的主函数中,将a.b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun( )的作用是:累加链表结点数据域中的数据作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
参考解析:
(1)int t;改为int t=0;
(2)*P改为P或者P!=NULL
(3)P.data改为P->data
【考点分析】
主要考察考生对于操作符.与->的异同的理解,指针只能有->,数组元素可以有.或者->。
【解题思路】
(1)intt;改为intt=0;题目中变量t是用来存放累加和的,必须初始化。
(2)*P改为P或者P!=NULL,题目中*P是结构体,不能转化为bool型;
(3)P.data改为P->data,P是指针,只能用P->,不能用P。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |