今天是2023年最后一天,在这里我祝愿大家愿你们今年所有留下遗憾,都是来年惊喜铺垫。
本文章与爱学习你们一同带着遨游于2024年知识海洋。本文中题大多数来自于网络。这些都是我认为好一点基础题,有一些是题目是我考试遇见的希望这些题目能够帮助你们度过2024年c语言基础考试,在这里祝愿大家遇到都会,考到都对。
让我们来看看第一道题吧
以下程序段输出结果是()
char arr[]="\\141\141abc\t"
printf("%d\n",strlen(arr));
A 9 c 13
B 12 D 14
解:我们仔细看这道题感觉啊,对于基础扎实简单,基础不怎么好的人有点友好了,我们来分析一下这个字符数组吧,\\这结合是一个转义字符表示\,? ?1算是一个字符?,4算是一个字符,1算是一个字符,
\141算是一个转义字符,a算是一个字符,b算是一个字符,c算是一个字符,\t算是一个转义字符。然后相加可以知道答案了
第2题
判断一下这段代码输出结果是()
int main()
{
int i =1;
sancf(i++);
printf("%d\n",i);
return 0;
}
A 1 B 4
C 2 D 8
解:这道题考验你对scanf的认识,我们c语言中scanf表示操作符,不是函数,其实里面i是不会进行加的操作,虽然这里用的是后置++,但是i的值不会发生改变,所有还是保持1;这里提到后置++,我这里分想一下我是怎么区分的? 比如 i++? 我们把i想象成赋值,这样子就是先赋值然后在++,同理后置++i,可以想象成先++在赋值。
第三题
c语言中 假设a =3,b=4;执行语句printf("%d,%d",(a,b)(b,a));输出结果是()
A 3,4 B (3,4)(4,3)
C 4.3 D不确定
解:这道题考查是逗号表达式理解,逗号表达式计算时候是从左往右顺序计算,但是输出结果只输出最右边结果。所以说不难看出来选择那个;
第4题
已有定义x=13,y=15,则执行这个表达式z=x||(x-=y)后,变量y的值和z的值()
A 15,1 B13,15
C 13.1 D15,13
解:这道题考验你对c语言中或操作符的理解,在c语言中表示左边为1的真值,这种情况下会默认最右边不管是真还是假统一是1;但是遇见最左边为假,这个就会以右边的真假为结果x
?的值为?13
,非零,因此不执行?x -= y
,x
?的值保持为?13
。又因为?z
?的值为?x || (x -= y)
?的结果,即?1
,因此?z
?的值为?1
。
第5题
在一个循环语句while(!x);中表达式!x等价于()
A X!=0 BX!=1
C X==0 DX==1
解:这道题比较简单ix 我们假设x==1,!x这个表达式不为假(0)跳出循环,所以说x==0,才符合这道题表达式。
第6题
下面程序运行结果是()
int mian()
{
int count =0;
while(count <=2)
{
count++;
printf("%d\n",count);
}
return 0;
}
解:count = 0 ,1 ,2时候进入循环体,先执行count++ ,为1,2,3。当count=3表达式为假退出循环;
所以输出结果1,2,3;
第7题
判断一下这段代码输出结果
int main()
{
int x =1;
int y =2;
int v =3;
if(x==1 && (++y ==3)||(v++==3))
printf("%d %d %d\n",x,y,v);
return 0;
}
解:这道题考验你对 || 和 &&这两个操作符理解,我们上面题已经介绍或操作符,这里我就直接讲述这两个操作符简单描述? ? A||B :假设A为真,那么B不管真假都不会执行,假设A为假,就会以B的结果为表达式结果。 A&&B :假设A为真,B为假,那么表达式为假,假设A为真,B为真,表达式为真。总结两边都为真表达式为真,反之两边其中一个为假,表达式为假。我们来分析一下这个代码x==1为真,所有右边也必须其中一个为真,++y这个先+在赋值y==3为真,那么后面默认为真不执行,输出结果为x=1,y=3,v=3。
第8题
已经知a的AScll十进制97,下面输出结果为
char = "a";
a--;
printf("%d,%c\n",a+"2"-"0",a+"3"-"0");
解:第一行的操作是进行变量的初始化的操作,把变量a的值初始化成字符a,也就是'a',第二行的操作是对变量a进行减1的操作,不管是前置--还是后置--,这一行执行完毕之后,变量a的ascii码值都进行了减1的操作,但是第三方在进行输出的操作的时候,先给变量a的ascii码值进行+2的操作,同时以%d的格式进行初始,那么最终的到的结果就是98,以%c的格式输出,+3得到的结果就是98,c
第9题
设定一个数组定义,char arr[]="chian"则这个数组arr所占的内存空间多大____
解:给数组赋值时,可以用一个字符串作为初值,这种方法直观,方便而且符合人们的习惯。数组array的长度不是5,而是6,这点必须要注意,因为字符串常量的最后由系统加上一个’\0’,因此,上面的初始化与下面的等价:char array[]={‘C’,’h’,’i’,’n’,’a’,’\0’};
第10题
在c语言中有int arr[5]={12,45,67,89,56},*p=a;则*p++==13,这个是否正确?
解:*p++相当于*(p++),因为p++先返回p的值然后再自加,所以*p++相当于*p,所以本题中*p++的值为12,而不是13;
第11题
假如你要声明一个指针,它始终指向同一个整数变量,但是它的变量值可以改变,你应该选择那个()
A int *p B const int*p
C int *const p D const int *const p
const int *p:p可变,p指向的内容不可变
int * const p:p不可变,p指向的内容可变
const int * const p:p和p指向的内容都不可变
好了我就分享一下这几个题目,这些题目是我们新手时期高频出现错误。我拿出来与大家分享一下,同时你们要是发现我哪里讲的不对欢迎你们指出来。我这里在祝福大家顺遂安康。