蓝鸥杯C语言技能竞赛模拟题

本文提供了蓝鸥杯C语言技能竞赛的模拟题目及解析,涵盖单项选择、多项选择、填空及编程题,涉及字符串比较、位运算、输入输出、函数调用等C语言核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一题     单项选择题     分数:6

若有以下定义和语句

char s1[]="12345",s2[]="1234";
int n=strcmp(s1,s2)
请问关于n的值,以下哪个选项是正确的?

A.等于0

B.小于0

C.大于0

D.无法确定


答案:C

解析:strcmp:C/C++函数,比较两个字符串,设这两个字符串为str1,str2,

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
若str1==str2,则返回零;
若str1>str2,则返回正数;
若str1<str2,则返回负数。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第二题     单项选择题     分数:6

下面表达式中,a的值是什么?

int a=(!'1'||'1')+5;

A.不确定

B.5

C.6

D.7    

E.53

F.54 

G.55


答案:C

解析:!'1' 表示非真, '1'表示真, 或运算 (!'1' || '1')结果是真=1,1+5=6 赋值给a,所以a=6.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第三题     单项选择题     分数:6

scanf()函数的正确调用形式是哪个?

A.scanf(格式控制串,输出项列表)

B.scanf(格式控制串,输出项地址列表)

C.scanf(格式控制串,输入项列表)

D.scanf(格式控制串,输入项地址列表)


答案:D

解析:scanf函数的一般形式为:
scanf(“格式控制字符串”, 地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第四题     单项选择题     分数:6

以下代码的输出结果是什么?

void main()
{ int a=2;
   a<<=2;
   printf("%d\n",a);
}
A.0

B.2

C.4

D.8


答案:D

解析:a<<2 表示a 左移两位,数值上相当于a的十进制数乘以4
a<<n 数值上相当于a的十进制数乘以2的n次方
a>>n 数值上相当于a的十进制数除以2的n次方

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第五题     单项选择题     分数:6

字符串"\\0211\"xab"的长度(string  length)是多少?

A.9

B.10

C.1

D.11


答案:A

解析:转义字符:
\0 :字符串结束标志;
\n :换行(ascⅱ码为10);
\t :横向跳格;
\b :退格;
\r :回车(ascⅱ码为13);
\f :走纸换页;
\\ :字符\(ascⅱ码为92);
\' :单引号;
'\"':双引号;
\ddd:用8进制表示字符;
\xhh:用16进制表示字符

所以题中的字符串可以分解为\\   0211    \“   xab,即长度为9

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第六题     单项选择题     分数:6

以下哪个说法是正确的?

A.函数的定义可以嵌套,函数的调用不可以嵌套

B.函数的定义不可以嵌套,函数的调用可以嵌套

C.函数的定义和函数的调用都不可以嵌套

D.函数的定义和函数的调用都可以嵌套


答案:B

解析:因为函数的结果是一个未知量,而函数定义时不能使用未知量,所以函数定义不可以嵌套,但是函数调用可以嵌套。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第七题     多项选择题     分数:12

以下哪些选项的语句或操作有错误?

A.char s[5] = "abcdef";

B.char *s; getchar(s);

C.char *s; s = "abcde";

D.char s[5]; scanf("s%", *s);

E.char *s = "abcde";


答案:ABD

解析:A.初始化的数组长度不能超过数组长度,B.在没有为指针分配地址空间的时候不能对指针指向的地址操作,D.输入函数输入字符串不需要*.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第八题     多项选择题     分数:12

以下错误的说法有哪些?

A.用户若需调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C.系统根本不允许用户重新定义标准库函数

D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动去调用


答案:ACD

解析:用户调用标准库函数前不必重新定义,而只需使用预编译命令将该函数所在文件包括到用户源文件中即可。而且,系统允许用户重新定义标准库函数,但此时该函数将失去原有含义。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第九题     填空题     分数:6

C语言里的整型类型有int,_____,_____等(unsigned不算)。


答案:short  , long 

解析:short int 和long int可以缩写为short 和 long

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第十题     填空题     分数:6

C语言中程序的入口函数名应该为_____,其标准返回值类型应该为_____。


答案:main , int

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第十一题     C语言编程题     分数:10

最简单的加法

        下面给出了函数add的声明,请按要求完成该函数。

给定如下的代码:

/*返回a+b的结果
 */
int add(int a, int b);

请您按照题目要求编写代码。


答案:

int add(int a, int b)
{
    return a+b;
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第十二题     C语言编程题     分数:18

字符串连接

        下面给出了一个join函数的声明。该函数的功能为将多个字符串连接成一个。

例如:

char* ss[ ] = {"hello, ", "welcome to ", "C contest!"};

char  dest[1000];

join(ss, 3, dest);

printf("%s\n", dest);  // 此处应该能输出 “hello, welcome to C contest!”

        请按要求完成该函数的实现。

给定如下的代码:

#include<string.h>

/*将多个字符串连接成一个。
 *strs: 要连接的字符串数组
 *strNum: 字符串数组里字符串的个数
 *dest: 存放连接后的字符串
 */
void join(char* strs[], int strNum, char *dest);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值