c语言基础练习题详解

💞💞
1.C语言程序的基本单位是(C)。
A.程序行 B. 语句 C. 函数 D.字符
💞💞
2.已知各变量的类型说明如下:

int  m=6,n,a,b;
unsigned  long   w=8;
double x=3.14,y=0.12;

则以下符合C语言语法的表达式是(A)。
A.a+=a-=(b=2) * (a=8)自右向左
B.n=n3=18
C.x%3
D.y=float(m)
💞💞
3.设有定义“ int x=3 , y , * p=&x” ,则下列语句中使 y 不为 3 的语句是(D)
A y=
&x ;
B y=*p;
C y=x;
D y=&x;
解析:
(A)&x 即把x的地址取出来,赋给p,再解引用即可以使y=3;
(B)因为 *p=&x;所以 *p 即可以找到x的值,即为3
(C)因为 x=3,直接把x赋值给y,所以y=3;
(D)&x 是获取的x的地址赋给y,所以y不能输出3
💞💞
4.设x、y、z均为 int 型变量,则执行语句:x=y=3; z=++x || ++y; 后 y的值为
(C)
A、不定值
B、4
C、3
D、1
解析:
因为中间是 || 先执行++x 是真,判断 || 操作运算符,有一真即为真,所以进行赋值z,再++y;因为后面没有使用y的值,所以y=3;
💞💞
5.设a=4,b=6,c=7,d=8,m=3,n=2,则执行(m=a>b) && (n=c>d) 后n的值为(B)。
A.0
B.2
C.3
D.1
解析:
a=4,b=6. 显而可见 a<b 所以a>b 为假, && 操作符 有一假即为假,所以会出现 短路特性,n的值不会改变
💞💞
6.下述对C语言字符数组的描述中错误的是 (C ) 。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"=“对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
解析:
数组只能在初始化的时候进行赋值操作,以后就不能进行赋值操作了
💞💞
7.有如下函数调用语句
f1 (a ,b-c , (d,e) ) ;
该函数调用语句中,含有的实参个数是(A)。
A.3
B.4
C.5
D.有语法错
解析:
(d,e)是一个逗号表达式,它的值为最后一个数的值即e的值。
所以有3个参数。
💞💞
8.以下选项中,与 k=n++完全等价的表达式是(A)。
A) k=n,n=n+1
B) n=n+1,k=n
C) k=++n
D) k+=n+1
解析:
n是后置++,即先使用n的值,再进行+1操作
即 先把·n的值赋值给k,n再执行+1操作
💞💞
9.当执行下面程序时,如果输入ABC,则输出结果是(A)
#include <stdio.h>
#include <string.h>
int main()
{
char ss[10]=“12345”;
gets(ss);
strcat(ss,“6789”);
printf(”%s\n",ss);
return 0;
}
A.ABC6789
B.ABC67
C.12345ABC6
D.ABC456789
解析:
gets(ss)即是输入字符串 ABC,ABC会把123 的空间占用,后面有一个 ‘\0’ 占用4的空间,所以遇到‘\0’后会自动结束,再进行串连接函数,在‘\0’ 后连接,即是ABC6789‘\0’
💞💞
10.若已定义int a,则表达式(a=10,a+10,a++)的值是(B)
A.20
B.10
C.21
D.11
解析:
逗号表达式,最后一个表达式为值,a++,后面没有赋值语句,所以a还是原来的值。
💞💞
11.以下程序的执行结果是(A)
int i=10, j=10;
printf("%d,%d\n",++i,j–);
A.11,10
B.9,10
C.11,9
D.10,9
解析:
++i 是前置加加 先给 i的值进行+1操作,再使用i的值 所以 i=11
j-- 是后置减减 先给使用 j的值,再进行-1操作 所以 j=10
💞💞💞💞💞

填空
1.结构化设计中的三种基本结构是

*顺序,选择,循环

2.定义int x,y;执行 y=(x=1,++x,x+2) ;后,y 的值是

4

3.若有定义int a=12,n=5,则表达式a%=(n%2)运算后, a 的值为

0

解析:
先算括号里面的n%2
结果为1
a=a%1;
所以a=0;

4.在定义int a[5][6]后,第10个元素是

(a[1][3])

解析:
a[5][6] 是5行6列的数组
第一行有6个元素
要找第10个元素
a[1][0]是第7个元素
所以a[1][3]是第10个元素

5.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i * f 值的数据
类型为

double

解析:
实型*双精度型 +整形 还是双精度型即为double

  1. <、+、%、!=运算符中优先级最高的是

%

7.字符串"a"在内存中占据的字节个数为

2

解析:
因为是字符串a,所以后面还有一个‘\0’
所以是两个字节数

8.C语言中的回车换行是

\n

9.要调用输入输出时,在#include命令行中应包含

stdio.h

10.已知字符‘a’的ASCII码为97,执行下列语句的输出是
printf ("%d,%c",‘b’,‘b’+1);

98,c

解析:
因为a的ASCII码为97
所以字符b的 ASCII码为98
‘b’+1=99;
用%c的形式输出来,所以会打印字符‘c’

11.警告提示不影响程序正常运行

(正确)

12.程序编译时,需要对注释进行处理。

(错误)

13.C语言中主函数的个数是任意的。

(错误)

解析·:
只能有一个main函数
14.do……while语句执行次数可能为0。

(错误)

解析:
先执行一次,再进行判断是否满足条件

15.C语言中规定,if语句的嵌套结构中,else总是与最近的且尚未配对的if
配对。

(正确)

16.二维数组a可以这样定义inta[][4]

(正确)

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洁洁!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值