C语言字符型变量sex,2015年计算机二级《C语言》精选练习题及答案(6)

1[简答题]下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABCDEFGHIJK”。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

f2a028e57598f7c4125ea5b70bfa99fd.png

c7e191fa1e62681cf9347a7bf0f485f4.png

参考解析:

【参考答案】

(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的花括号中填入你编写的若干语句。

试题程序:

5a2d0a01e3293e48ae1c276a3e47c7de.png

参考解析:

e83039e36cf5aca1f249c0566c3c3740.png

【考点分析】

本题考查:删除字符串中所有*号,需用循环语句遍历字符串,用判断语句判断字符是否为*号,由此可以决定该程序应使用循环判断结构。

【解题思路】

用循环操作从字符串开始往后逐个进行比较,若不是要删除的字符(用if(aEi]!=’*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。注意,下标变量J要从0开始,最后还要加上字符串结束标识‘\0’。

3[单选题] 有以下程序:

168cb82ebe69c921be97dfd13a0c8b5a.png

当执行程序时,按下列方式输入数据(从第l列开始,代表回车,注意:回车也是一个字符]1234则输出结果是( )。

A.12B.123C.1234D.12343

参考答案:D

参考解析:按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。

4[单选题] 在最坏情况下,二分查找法的时间复杂度为( )。

fb79eff5fdc980bbc8fc99211cc73bb9.png

参考答案:C

参考解析:二分法查找也称拆半查找,能使用二分1法查找的线性表必须满足两个条件,用顺序存储结构以及线性f表有序。利用二分法查找元素x的过程如下:将x与线性表1的中间项比较,如果X的值与中间项的值相等,则查找成功,1结束查找;如果x小于中间项的值,则在线性表的前半部分以二分法继续查找;如果x大于中间项的值,则在线性表的后半1部分以二分法继续查找。可以证明,对于长度为n的有序线性f表,在最坏情况下,二分法查找需比较l092n次,故时间复杂度1为l092n。故选择C选项。

5[单选题] 有以下结构体说明、变量定义和赋值语句:

5d628b970b63a27f2fd28d4e85120adb.png

则以下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[单选题] 有以下程序

c68c55302c6a5ba3ed670b564a6ead3e.png

程序的输出结果是

A.a=2,b=5B.a=%2,b=%5C.a=%d,b=%dD.a=%%d,b=%%d

参考答案:C

参考解析:c语言中用“%%”打印输出字符“%”,所以%%d。输出为%d两个普通字符,而不是格式控制符“%d”的含义,所以打印结果为C。

9[单选题] 有以下程序:

29e7bbd20e7d50d06e68b5f8598a058a.png

若想通过键盘输入,使得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[单选题] 有以下程序:

54a7f75db1c335ff2445b4becb0f72e2.png

程序运行后的输出结果是( )。

A.1B.11C.6D.21

参考答案:D

参考解析:本题考查位运算,以及按位或操作,将a左移一位相当于是将a乘以了4,所以a<<2等于20,二进制表示为00010100,与b按位或得到00010101,即21,所以选项D正确。

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值