1[简答题]下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。
例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABCDEFGHIJK”。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)b[k]=*p;
(2)b[k]=’’;k++;
【考点分析】
本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据类型,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。
【解题思路】
(1)题目中P是指针型变量作函数参数,因此给b[k]赋值时出现错误。
(2)题目要求复制三个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加l。
【解题宝典】 .c语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“木”符号表示“指向”,例如,pointer代表指针变量,而+pointer是pointer所指向的变量。
2[简答题]规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用c语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容.仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
参考解析:
【考点分析】
本题考查:删除字符串中所有*号,需用循环语句遍历字符串,用判断语句判断字符是否为*号,由此可以决定该程序应使用循环判断结构。
【解题思路】
用循环操作从字符串开始往后逐个进行比较,若不是要删除的字符(用if(aEi]!=’*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。注意,下标变量J要从0开始,最后还要加上字符串结束标识‘\0’。
3[单选题] 有以下程序:
当执行程序时,按下列方式输入数据(从第l列开始,代表回车,注意:回车也是一个字符]1234则输出结果是( )。
A.12B.123C.1234D.12343
参考答案:D
参考解析:按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。
4[单选题] 在最坏情况下,二分查找法的时间复杂度为( )。
参考答案:C
参考解析:二分法查找也称拆半查找,能使用二分1法查找的线性表必须满足两个条件,用顺序存储结构以及线性f表有序。利用二分法查找元素x的过程如下:将x与线性表1的中间项比较,如果X的值与中间项的值相等,则查找成功,1结束查找;如果x小于中间项的值,则在线性表的前半部分以二分法继续查找;如果x大于中间项的值,则在线性表的后半1部分以二分法继续查找。可以证明,对于长度为n的有序线性f表,在最坏情况下,二分法查找需比较l092n次,故时间复杂度1为l092n。故选择C选项。
5[单选题] 有以下结构体说明、变量定义和赋值语句:
则以下scanf函数调用语句有错误的是( )。
A.scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].age);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
参考答案:D
参考解析:本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps一>age为一个变量,不是指针,所以错误。
6[单选题] 设P是指针变量,语句P=NULL;等价于
A.P=´0´;B.P=";C.P="";D.P=0;
参考答案:D
参考解析:P=NULL;等价P=0;因此D选项正确。
7[单选题] 下列叙述中正确的是( )。
A.栈是一种先进先出的线性表
B.队列是一种后进先出的线性表
C.栈与队列都是非线性结构
D.以上三种说法都不对
参考答案:D
参考解析:栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。
8[单选题] 有以下程序
程序的输出结果是
A.a=2,b=5B.a=%2,b=%5C.a=%d,b=%dD.a=%%d,b=%%d
参考答案:C
参考解析:c语言中用“%%”打印输出字符“%”,所以%%d。输出为%d两个普通字符,而不是格式控制符“%d”的含义,所以打印结果为C。
9[单选题] 有以下程序:
若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,c2的值为字符b,程序运行后的输出结果是:l2,a,34,b。则正确的输入格式是(以下-代表空格,代表回车)( )。
A.12-a34-bB.12-a-34-bC.12,a,34,bD.12a34b
参考答案:D
参考解析:在输入多个数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。所以应按选项D的顺序输入数据。
10[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.1B.11C.6D.21
参考答案:D
参考解析:本题考查位运算,以及按位或操作,将a左移一位相当于是将a乘以了4,所以a<<2等于20,二进制表示为00010100,与b按位或得到00010101,即21,所以选项D正确。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |