C语言题目

1、给定c语言代码段:

t=0;
while(printf("*"))
{
t++;
if(t<3) break;
}

下面描述正确的是:
A 其中循环控制表达式与0等价
B 其中循环控制表达式与’0’等价
C 其中循环控制表达式是不合法的
D 以上说法都不对

解释
他说的是printf("")与‘0’等价
其实是这样的 printf这个函数的返回值是输出字符的个数
现在printf("
")的返回值是1
在while里只有0 和非0两种
所以只要选排一个非0的就能说是等价的
而‘0’需要转成ASCII码看是不为0的,是48 所以选B

2、若变量a,i已正确定义,且i已正确赋值,合法的语句是?
A.a==1 B.++i; C.a=a++=5; D.a=int(i);
解释
首先A选项就不是语句没有用分号结尾
B选项是对的
C不对,a++是将a自增在赋值
D选项首先,如果int()是函数,很明显和关键字重复,所以它不是函数
其次,如果是强制转换,形式应该是(int)i

3、若有定义:float w;int a,b;,则合法的switch语句是
A switch(w)
{ case1.0:printf("*\n");
case 2.0:printf("**\n");
}

B:switch(w);
{ case 1:printf("*\n");
case 2:printf("**\n");
}

C:switch(b)
{ case1:printf("\n");
default:printf("\n")
case 1+2:printf("**\n");
}
D:switch(a+b);
{ case1:printf("
\n")
case 2:printf("**\n")
}
解释
switch后的括号里只能是整型常量(包括能转换为int型的数据,如:int,char和枚举类型),显然w的都不对,a+b也不对,因为它们不是确定的整数。A 、B
错误
B、D中,switch();包含分号,所以错误。选C

4、 若有说明:int a[][4]={0,0};则下面不正确的叙述是
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
正确答案:D
https://kaoshi.china.com/ncre/learning/950220-1.htm

5、以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关,这句话对吗
解释
不对
形参可以不定义长度,因为等效于指针。
但实参 必须定义长度
即使是指针类型 ,也需要指向特定空间,或者分配动态内存,实际上 还是有长度约束的。
最后一句实参与形参的结合方式是地址结合,与数组长度无关 这个是对的。

6、主函数只能调用其他函数,不能调用自身;其他函数可以自己调用自己,递归调用。

7、若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是正确的.。
解释
宏就是符号定义,宏扩展时只是字符串替换,所以这个宏是正确的,也能正常使用。如:

#include "stdio.h"

#define s(a,b) t=a;a=b;b=t

int main(int argv,char *argc[]){

int x=4,y=123,t;

printf("x = %d\ty = %d\n",x,y);

s(x,y);

printf("x = %d\ty = %d\n",x,y);

return 0;
}
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯是中国著名的计算机竞赛,有着广泛的影响力。其中的C语言题目是该比赛的一部分,主要考察参赛者对C语言的基础知识和编程能力。 蓝桥杯的C语言题目种类繁多,包括编程题、选择题、填空题等。编程题通常要求参赛者根据题目描述,完成一个特定功能的C语言程序。这类题目是通过评测系统在线判题的,参赛者需要通过给定的测试数据,确保程序能够正确运行并给出正确的输出结果。 答案的形式根据具体的C语言题目而定。对于编程题,正确答案应是一个可以在给定测试数据下得到正确结果的C程序源码。而对于选择题和填空题,则需要给出正确的答案。 在准备蓝桥杯C语言题目的过程中,参赛者需要牢固掌握C语言的基本语法,包括变量、类型、运算符、流程控制结构以及函数等。另外,对于数组、指针、字符串等知识点也需要有一定的掌握。 为了更好地应对蓝桥杯的C语言题目,参赛者可以多做一些基于C语言的编程练习题,加深对C语言的理解和熟练程度。同时,可以阅读一些与C语言编程有关的书籍和教程,提升自己的编程能力和问题解决能力。 总而言之,蓝桥杯的C语言题目要求参赛者具备扎实的C语言编程基础和解决问题的能力。通过不断练习和学习,相信参赛者能够在蓝桥杯的C语言题目中取得好的成绩。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值