C语言习题(错题)

1.

转义字符只能使用八进制或者十六进制

2.

 3.

 

4.

5.

 auto 变量类型推演,
register 建议编译器将该变量放入cpu,
static 静态变量,
extern 声明变量,常用于多文件需要使用同一变量时

6.

 

7.

8.

 a为假,后边逻辑与直接不用判断

 a为真,后边逻辑或不用判断

9.sizeof()括号内的数值不参与加减乘除运算

10.

 11.D

12.

 

13.

14.

 15.

超过数组定义的最大值了 

16.

 

17.

 18.

 D。’‘ 只能给单个字符

B。“”表示字符串赋值

 19.

 先执行a>b然后看是否为真,返回值赋给a

20.

使用常量表示圆周率π,并计算半径为2的圆的面积。常量有多种定义方法,请判断哪一项填在(1)处无法使程序正常运行。

#include <stdio.h>

(_____1_____)

int main(int argc, char** argv)
{
    float radius = 2.0;
    float area = PI * radius * radius;

    printf("半径为%.2f的圆,面积是%.2f", radius, area);

    return 0;
}

const定义的不可被修改,所以不能事后赋值。

21.

【正确答案】C
【解析】A 选项错误,声明指针格式为:int * p
B 选项错误,x 为 int 类型,p 为 int * 类型,类型不匹配
C 选项正确
D 选项错误,x 为 int 类型,不能对它进行解引用操作
指针变量的声明格式:
1.数据类型* 变量名; 例如 int* p;
2.数据类型 *变量名; 例如 int *p;
3.数据类型 * 变量名; 例如 int * p;
指针变量的初始化:
1.在声明语句中初始化指针变量
int num = 5;
int* p = &num;
2.声明指针变量后对其进行初始化
int num = 5;
int* p;

p = &num;

22.

 23.

 对func函数的定义: char* func(int x, int y) { ....}
对func函数的调用:char* s; s=func(10,50);
对func函数的原型说明: char* func(int x, int y); ←后面有分号,并且没有函数体{}

24.

 25.

 26.

下面关于循环语句for、while、do_while 的叙述中,正确的是(D) 。
A. 三种循环语句的循环体都必须放入一对花括号中
B. 三种循环语句中都可以缺省循环终止条件表达式
C. 三种循环语句的循环体都至少被无条件地执行一次

D. 三种循环语句都可能出现无穷循环

解析:B:while语句为bool型,不可缺

27.

若有程序段“char c=256; int a=c;”,则执行该程序段后a 的值是 (16) 。
A. 256 B. 65536 C. 0 D. -1

解析:十进制数256二进制表示1 0000 0000
char只有1个字节,8位,所以最高位的1被舍弃,所以c的值为0000 0000,十进制表示0
然后把c的值赋给a,所以a值为0

28.

#include<stdio.h>
int f(char* f) {
    char* s = f;
    while (*s) {
        s += 2;
        printf("%s",s);
    }
    return s - f;
}
int main()
{
    char s[] = "language";
    printf("%d\n",f(s));
    return 0;
}

nguageuagege8

29.

 C语言编译程序的首要工作就是检查C语言程序中是否存在语法错误

30.

 左移n位,相当于乘以2的n次方

 右移n位,相当于除以2的n次方

31.

 32.

 错误x:只有定义结构体类型的变量后才分配

33.

34.

函数调用结束后,静态局部变量所占用的空间被释放。   X

函数内定义的静态变量,形式上是局部变量,但与一般局部变量不同:
1、一般的局部变量在函数结束后就释放了,下次调用时重新申请空间;
2、“静态局部”变量,在函数调用结束后,空间不释放,保留结束前的值,直到下次调用时作为初值使用,要到整个程序退出时才释放

35.

C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用

36.

若输入字符串:abcde<回车>,则以下while循环体将执行__0___次。

1

2

while((ch=getchar())=='e')

    printf("*");

因为getchar的本质决定的,也就是说getchar是在回车之后仅仅读取一个字符,也就是仅仅读取了a而已。因为 'a' != 'e' ,所以第一次没有执行,然后没有了其他的字符输入,最重要的是没有回车键的输入,所以不会再读入字符。

37.

 

38.

 

39.

 

40.

 41.

 42.

有效范围在它定义之后,不是文件中都有效

43.

 44.

 45.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值