判断题
- 结构体变量可以作数组元素 对。
- 结构体成员的类型必须是基本数据类型 错 (结构体成员的类型可以是基本数据类型,也可以是构造类型)
- 结构体类型本身不占用内存空间,结构体变量占用内存空间 对
- char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s 对
- 语句int *p, q, r; 定义了3个指针变量 错 (定义了一个指针变量,两个变量)
- 执行语句int *p; 后,指针变量p只能指向int类型的变量 对
- 只要将多个指针作为函数的参数,函数就一定会返回多个值 错(void是空函数,无返回值,int类型有一个返回值)
- 对于定义int a[10],*p=a; 语句p=a+1;和a=a+1;都是合法的 错(a是指针数组首地址,不可更改)
- 结构是变量的集合,可以按照对同类型变量的操作方法单独使用其成员变量。 对
- 对于结构数组s,既可以引用数组的元素s[i],也可以引用s[i]中的结构成员。 对
- 假设结构指针p已定义并正确赋值,其指向的结构变量有一个成员是int型的num,则语句 *p.num = 100; 是正确的。 错((*p).num = 100;(因为.的优先级高于*);或者p→num,也可以)
- 语句 int *p[5]; 定义了一个指针数组p,用于指向一个有5个元素的数组。 错(定义一个指向一维数组的指针的首元素的指针应为 int a[5],*p)
- 对于 int 型的二级指针变量,它既可以指向同类型的一级指针变量,也可以指向同类型的普通(非指针)变量。 错(对于int型的二级指针变量,可以指向一维指针变量)(那它可以指向二维指针变量吗)
- 在定义结构类型时,关键字struct和它后面的结构名共同组成一个新的数据类型名。 对
- 在对结构变量操作时,.被称为成员或者分量运算符。 对
- 在使用结构指针时,->被称为指向运算符。 对
- 在C语言中,数组名是不可改变的,不能对它进行赋值运算。 对
- 文件指针和位置指针都是随着文件的读写操作在不断改变。 错(位置指针不变(定义),文件指针不知道)
- 随机操作只适用于文本文件。 错(随机操作适用于文本文件和二进制文件)
- 随机操作只适用于二进制文件 错()
- 以“a”方式打开一个文件时,文件指针指向文件首。 错(‘a’方式向文本文件尾添加数据,文件只能写,因为只能在文件尾添加,所以应该是指向文件尾)
- 文件的读函数是从输入文件中读取信息,并存放在内存中。 对
- c语言源程序是文本文件,目标文件和可执行文件是二进制文件。 对
- close(fp);表示关闭指针fp所指向的那个文件。 错(表示关闭文件指针所指的文件的是 fclose())
- fprintf(fp,"%d",a);表示将变量a以十进制整数形式保存到指针fp所指向的文件中。 对
- scanf(fp,"%c",&ch);表示从指针fp所指向的文件中读出一个字符并保存到变量ch中。 错(fp 必需指向一个以读的方式打开的文件,即只能读,不能存)
- 当fopen函数打开文件失败时,返回给文件指针的值是NULL。 对(fopen()函数如果执行成功,返回包含文件包含文件缓冲区信息的文件结构体的地址,赋给文件指针fp。否则,返回一个NULL(空值)的FILE指针)
- 当文件被正常关闭时,fclose( )函数的返回值是-1。 错(正常关闭返回为0)
- 一般不能用任何一个文本编辑器打开二进制文件进行阅读。 对(//二进制的是一串1和0,人看不懂)
- 二进制文件名不能用.txt作为扩展名,否则二进制文件读写函数fread和fwrite将出错。 错(二进制文件名可以用.txt作为扩展名,后半句对不对我不知道)
- 有时候,打开文件方式"w+"和"r+"具有同样的作用。 对(“r+”(读写),为输入/输出打开一个文本文件;“w+”(读写),为输入/输出建立一个文本文件(若文件不存在则创立该文件);都会打开一个文件)
- C语言中不能用printf函数输出字符。 错
- 执行以下程序段后,k的值为4。
int k = 3;
sizeof(++k); 错(k=3)
34.表达式 (3<x<5) 的值恒为1。 对 (如果x>3,那么为真,输出1;如果x<3,那么为假,输出0。即都小于5)
35.C语言中不能用scanf 函数输入字符。 错
36.设变量已正确定义,执行以下程序段,顺序输入三个字符'k',则输出k。
scanf("%c%c%c", &ch1, &ch2, &ch3);
printf("%c", ch2); 对
37.可以使用printf输出一个字符。 对
38.C语言中变量名r和R表示同一个变量。 错
39.c语言中运算符%的优先级高于&&。 对
40.C语言中3/2的值是1。 对
41.这个赋值语句是正确的:5=a; 错
42.判断整型变量a是否是偶数的表达式为a%2=0。 错
43.在逻辑运算符中,逻辑非(!)的优先级别最高。 对
44.执行以下程序段,输入1.3 0.01 365,输出1.3#0.010#365。
int day;
double factor, initial;
scanf("%lf %lf %d", &initial, &factor);
printf("%.1f#%.3f#%d", initial, factor, day); 错 (scanf("%lf %lf %d", &initial, &factor);
输入里面没有day,所以不会输出题上所示)
- 已知字符B的ASCII码是66,那么也可以通过转义符\,用'\66'来表示字符常量B。 错 ( \ 后边只能是八进制)
- 假设有变量定义语句float f = 1234567890123.123456;,打印语句printf("f = %f", f); 的输出是f = 1234567954432.000000 。那么可以这样解释这种想象:因为float类型的数据精度是十进制7~8位,第9位以后的数据是随机的,即下次再输出这个数时,第9位以后的数据可能会不一样。 错()
- 判断两个浮点数是否相同的运算虽然符合C语言规则,但是应该尽量避免。 对
48.C程序中的main函数必须放在整个程序的最前头 错(在编写结构体类程序时,先书写结构声明,再书写main函数)
49."a"是合法的字符常量。 错
50.C语言程序一定是从源文件的第一条语句开始执行的。 错(C语言都是从main开始执行的,但有一些程序包含函数,且函数位于前边,则先跳过函数,执行main,当遇到调用函数时再执行前边的函数)
51C语言程序不区分大小写。 错
52.do-while循环的while后的分号可以省略。 错
53.do-while循环至少要执行一次循环语句。 对
54.C语言的三种循环不可以互相嵌套。 错
55.continue 只能用于循环体中。 对
56.对for(表达式1;;表达式3)可理解为for(表达式1;1;表达式3)。 对