c语言基础题库及详解答案知乎(c语言基础例题及答案)

http://www.itjxue.com  2023-02-26 03:11  来源:未知  点击次数: 

C语言基础题,谁能帮忙解答一下,要有详细注释,谢谢

答案是:1 65 1.5 6.5

【解析】对于赋值符号,计算方向是从赋值符号右边往左计算的,所以我们看:

a = f /= c *= (x=6.5);

我们就能很容易地求出:

x = 6.5;

c = c * x = 10 * 6.5 = 65;(这里注意下,虽然c是字符型,但是整型也是可以赋给它的,毕竟字符也是和ASCII对应的,字符型的变量,既可以给一个字符,也可以给一个整型值,它也对应一个字符(ASCII对应一个字符),输出的时候,如果格式控制是%d,就是输出字符的ASCII值)

f = f / c = 1.5;(这里f是float型)

a = f; (f是float型,而a是整型,就只能取整了,因此是1)

两道c语言基础题求解析,谢谢

这要如何解析,第一题就是函数传参问题,实参和形参类型一致

第二题就是结构体变量的三种定义方式 D选项只是结构体类型的定义,不是结构体变量的定义

C语言的一些基础题

1 #include stdio.h

2 main()

3 { float s[5];

4 int I,sz=0;

5 for(I=0;I5;I++)

6 scanf("%d",s+I);

7 for(I=0;I5;I++)

8 sz+=s[I];

9 printf("\n%f",(float)sz);

10 }

A) 没有错误

B) 第4行错误

C) 第6行错误

D) 第9行错误

C s数组是实型,不能用整型输入

下列合法的数组定义是( )。

A) int a[]="string";

B) int a[5]={0,1,2,3,4,5};

C) char a="string";

D) char a[]={0,1,2,3,4,5};

D A.a[]是整形不对 B.有6个元素 C若是char a[]="string"; 就对了

以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#include stdio.h

main()

{

int a[10],i=0;

while(i10)

scanf("%d",______);

}

A) a+(i++)

B) a[i+1]

C) a+i

D) a[i++]

D AC显然不对 B没有输入a[0]的值

设有:

static char str[]="Beijing";

则执行:

printf("%d\n",strlen(strcpy(str,"China")));

后的输出结果为( )。

A) 5

B) 7

C) 12

D) 14

A strcpy为字符串拷贝函数 strlen为字符串统计函数

阅读下面的程序

main()

{

inn[2],I,j,k;

for(I=0;I2;I++)

n[I]=0;

k=2;

for(I=0;Ik;I++)

for(j=0;jk;j++)

n[j]=n[I]+1;

printf("%d\n",n[k]);

}

上面程序的输出结果是( )。

A) 不确定的值

B) 3

C) 2

D) 1

题有问题

for(I=0;I2;I++)

n[I]=0;

初始化n[0],n[1]为0

4次循环

for(I=0;Ik;I++)

for(j=0;jk;j++)

n[j]=n[I]+1;

得n[0]=3,n[1]=4执行

printf("%d\n",n[2]); n[2]本身就不对,越界了

定义如下变量和数组:

int I;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是( )。For(I=0;I3;I++)

printf("%d ",x[I][2-I]);

A) 1 5 9

B) 1 4 7

C) 3 5 7

D) 3 6 9

A I=0输出(0)(2)=3,I=1输出X(1)(1)=5,I=2输出X(2)(0)=7

若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c='a',d,g;

则数值为4的表达式是( )。

A) a[g-c]

B) a[4]

C) a['d'-'c']

D) a['d'-c]

D A是不确定的值,B得5,C得2

Printf("%d\n",strlen("\t\"\065\xff\n));

A) 5

B) 14

C) 8

D) 输出项不合法,无正常输出

A 有5个逃逸字元

\t 水平制表符Tab

\" 双引号

\065 以8进制表示的5

\xff 以16进制表示的无名字符。打印出来显示为占两个字符位的空格

\n 换行符

若有以下定义和语句:

char s[10];

s="abcd";

printf("%s\n",s);

则输出的结果是( )。

A) 输出abcd

B) 输出a

C) 输出abcd

D) 编译不通过

D 字符串不能负值给地址应为s[]="abcd";

下述程序输出的结果是( )。

#include stdio.h

main()

{

char ch[7]={"65ab21"};

int I,s=0;

for(I=0;ch[I]='0'ch[I]='9';I+=2)

s=10*s+ch[I]-'0';

printf("%d\n",s);

}

A) 12ba56

B) 6521

C) 6

D) 62

C 第一次ch[0]=6第二次ch[2]=a跳出 s=6

下述函数引用中,( )是含有错误的。其中s的定义如下:

char s[10];

A) scanf("%10s",s);

B) printf("%.5s",s);

C) puts(s+3);

D) gets(s);

C 若字符串s[10]只有一个字符 如a \0,s+3指向的s[3]未分配内存

定义如下数组s:

char s[40];

若准备将字符串“This is a string.”记录下来,( )是错误的输入语句。

A) gets(s+2);

B) scanf("%20s",s);

C) for(I=0;I17;I++)

S[I]=getchar();

D) while((c=getchar())!='\n')

s[I++]=c;

C 只是输入This is a string.没有输入\n

(责任编辑:IT教学网)

更多

推荐Dreamweaver教程文章