当前位置:首页 » 编程语言 » c语言选择题解释及答案
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言选择题解释及答案

发布时间: 2022-05-10 06:14:45

1. c语言选择题解释 急 44

答案选D(8 9 10)
子函数中变量a是主函数x值传递过来的值,每次都是3,
变量b是子函数中的自动动态变量,每调用此函数都重新定义并初始化,b++后,每次都是1
变量c是子函数中的静态局部变量,只在第一次调用时定义并赋初值3,之后即使其子函数被调用后销毁,它也不会销毁,而且此子函数再被调用时,该静态变量不再被重新定义及赋初值,故其值连续地被保持,每一次调用经++后为4,第二次为5,第三次为6
故第一次输出1+3+4=8
第二次输出1+3+5=9
第三次输出1+3+6=10

2. C语言的4个选择题,帮忙解释一下答案,谢谢!

第一题:
c=getchar()表示计算机获得一个输入的字符并把它赋给int型的c(在1~256之间int和char可以相互赋值).首先接收字符2,把2赋给c,while(c=getchar())!='\n')表示只要输入的字符不是enter键就执行while里面的循环体。 而
switch(c-‘2’)
{
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
的执行过程是这样的:首先计算‘c'-2的值,只要该值与下面的那个case 后的表达式相同就执行其后的语句,比如说读入的第一个字符2,2-2=0,此时执行case 0 后面的语句,而case 0与case 1后面的语句是同一个语句,所以执行 putchar(c+4);输出6,由于
case 1: putchar(c+4);后面没有break;语句,所以继续执行其后语句,直到遇到break语句或执行完所有语句为止,为此第二个也输出6,因为case 2后有break语句,所以结束第一次循环,之后输入的473的原理也是这样的。
第二题:
for循环的一般形式是for(表达式1;表达式2;表达式3){循环体}表达式1相当于赋初值,其作用只有一次,而表达式2是判断条件,只要表达式2不为0就执行循环体,执行完循环体后在执行表达式3,这是一个完整的循环,接着又判断表达式2的值是否为零,不为零,又执行循环体,......
因为此题中i=2不等于0,所以表达式2 的值为0;因此一次也不执行。
第三题:
参阅第二题解析。
第四题:
*p=&x[1][1];表示把元素5的地址赋给了指针p;
for(i=0;i<4;i+=2)printf("%d ",p[i]);
第一次,i=0;输出p[1][1],第二次i=2,此时使p向后移动两个元素,因此输出3

3. 几道C语言基础的选择题,求解释,谢谢。

1、首先我们知道宏只是简单的字符替换,那么宏NUM实际就等价于
(N+1+1)*N+1/2,再等价于(2+1+1)*2+1/2,然后要注意优先级的问题,NUM=8,那么循环就是1~8。
2、A、*p //就是a[0]
B、a[10] //这样就越界了,数组元素只有a[0]~a[9]
C、*a //就是a[0]
D、a[p-a] //就是a[0]
3、我们知道字符数组是以数字0(也就是'\0')为结束标识的。p指向的是字符数组第一个元素'H',那么p+1指向'e',p+2指向'l',p+3指向'l',p+4指向'o',p+5指向'\0'。
3、A、p+=2,*(p++) //p指向元素1,p+=2后p指向元素3,p++:先使用再自增,则*(p++)就是3
B、p+=2,*++p //++p先自增再使用,则*++p是4
C、p+=3,*p++ //p+=3后p指向元素4
D、++*p //值为2
4、strcpy(s1,s2)将s2复制到s1并返回s1,即之后s1与s2内容是一样的,strlen取长度值为4。
5、 A、scanf("%d%s",&p->num,p->name);
B、scanf("%d%s",&p->num,&p->name);
C、scanf("%d%s",&p.num,p.name);
D、scanf("%d%s",&p.num,&p.name);
以结构指针操作成员要用到成员运算符->,那么C、D排除;scanf需要的是一个内存地址,p->num是一个整型变量,要用取地址符&;结构中成员name是一个字符数组,p->name表示的是这个字符数组的首地址,不需要再用取地址符。

4. C语言 选择题及其详细解释(最好能对每一个结果进行分析)

第一题应该选D,ABC三个选项均是如果a非零,则执行语句s1,否则执行语句s2。第二题选B,因为a=1,在switch(b)的循环中输出**0**,之后break仅仅跳出了swith(b)而没有跳出switch(a),因此程序往下执行,从而有输出**2**因此输出为**0****2**选B

5. C语言函数问题,选择题,答案及选择理由,求详细解释。

A return 'A';
这个是可以的,因为char 类型在c语言里是可以与int 计算的。
B return 3.14;
这个是不可以的,答案就选B.
3.14是浮点常量。不是int,类型不匹配。
C return 0
这个是可以的,0 符合int类型数据输出。
D return (int)3.14;
这个也是可以的,int对3.14 进行了强制类型转化,把浮点类型转为int类型

6. C语言 简单问题 选择题 麻烦解释一下答案~~~

  1. A k的值若没有初始化,会有个随机值,我们不能确定

  2. B错了,B仅仅是2*x,并不是2*=x

  3. B NULL是空指针,A明显对,C是十六进制的aa转化为对应的ASCII值给c

  4. VC分配多少直接给int我不知道,不过为了确保长度足够,这题目可能就选C(int可能分配2或4个字节,long分配4个)

7. C语言编程题,求答案+解释,谢谢大佬

(1)这个位置,因为在主函数之外,只有一行。一般来说是#include了其他的库,或者是#define了一些什么,或者是前向声明(但鉴于题目里扫视了一眼只有一个非主函数,所以不会是这个)。那我最大的倾向就是#include,接着我会直接看主函数
先学会看变量,可以看到题目里有三个变量X,Y1,Y2。和我们设置的变量不谋而合,接下来输入X的值,直接就可以算Y1,Y2。因为刚刚记得只看到了一个外函数,而且下面两个空是在形参上让我们填空,我就回头看了一眼题目,原来是函数的形式完全相同,只是改变了传进去的参数,第一个直接传x+8,第二个要传sinx,那两个答案就出来了,同时(1)的答案也出来了,因为sin()这个函数是在#include<math.h>里面的

接着剩下最后一个空,我们看到被调函数fun里面,这是一个返回类型float的函数,但是没有返回值,所以我们需要return 一些什么,很明显这里只有一个能return的,那就是y

综上
(1)#include<math.h>
(2)return y;
(3)x+8
(4)sin(x)

(在我写完之后看到3分钟前下面还有个答案,include用了""。需要说明的是,一般只有使用非库头文件,也就是自定义的头文件时,会选择"",这并不是一个好习惯,会不会引发报错可以自己尝试一下)

8. C语言 选择题及其详细解释(最好能对每一个结果进行分析)谢谢!!!

第一题:while()中的该是“!”是吗?那就是不会输出任何东西!因为C中“非0就是1”而字母是以ASCII码的形式存放的!所以“a”就能看做“1”而现在是“!1”当然就是0啊!所以后面的printf是不会做的啊!所以啊就要选“c”
第二题:该是B 因为“X——”是先用x的值在“——”的!也就是说先输出再改变x的值!所以输出还是23!故选择B!

9. C语言选择题(最好解释)

len和str分别是3和9
c中字符串的长度len计算的结束标志就是遇到\0,所以就是3
字符串大小,就是整个字符串的大小了,\0也是一个字符,所以就是9