关于C语言标识符作用域的说法 正确的是,C语言程序设计-中国大学mooc-汤文兵
1、
有变量定义: int *p,q; 表示定义了______
A、指针变量p和整型变量q
B、两个指针变量p和q
C、两个整型变量p和q
D、这样定义有语法错
答案:A
2、
设变量定义为"int x, *p=&x; ",则&*p相当于________。
A、&x
B、*p
C、x
D、*x
答案:A
3、
已有定义int k=2,m=3; int *ptr1=&k,*ptr2=&m;,下面不能正确执行的赋值语句是__
A、k=*ptr1+*ptr2;
B、ptr2=k;
C、ptr2=ptr1;
D、ptr2=&k;
答案:B
4、
若有定义及赋值:int a[10]={0,1,2,3,4,5,6,7,8,9},*p; p=a+1; , 则不能表示数组a中元素值为4的那个元素地址的表达式是______。
A、&a[4]
B、p+4
C、a+4
D、p+3
答案:B
5、
若有说明 int a[5][4];,则对 a数组的i行j列(假设i,j已正确说明)元素值的引用正确的是______ (说明:0行0列元素为a[0][0])。
A、*(*(a+i)+j)
B、(a+i)[j]
C、*(a+i+j)
D、*(a+i)+j
答案:A
6、
若有以下定义和语句:int a[2][3],(*p)[3]=a;则对a数组元素地址的正确引用为______。
A、*(p+2)
B、p[2]
C、p[1]+1
D、(p+1)+2
答案:C
7、
若有定义: int *p[4];,则标识符p______。
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个指针,指向一个含有4个整型元素的一维数组
D、说明不合法
答案:B
8、
有函数原型声明: void f( int *); 主函数中有变量定义: int a,b[3],*p=&a; 下列函数调用语句错误的是_______
A、f(&a);
B、f(b+1);
C、f(a);
D、f(p);
答案:C
9、
想要通过一个指针形参改变对应实参变量的值,在写程序的时候需要符合几个条件,下列哪一个条件是错误的_______
A、形参设为指针参数
B、对应实参为需要改变值的实参变量的地址
C、在函数体中通过间接访问方式修改指针形参所指向的内容
D、在函数体中对指针形参本身进行修改
答案:D
10、
函数中用指针形参接受数组实参,其优点不包括下列哪一条______
A、可以直接使用实参数组的空间
B、可以直接操作实参数组的元素
C、只需要存放一个指针的空间开销,而不必复制整个数组空间
D、书写代码简单
答案:D
11、
如果一个函数想“返回”3个整数值,前两个参数是需要提供的原始数据,则函数原型可以写成: int f(int ,int ,int *,int *);
答案:正确
12、
关于选择法排序(由小到大排序),以下说法不正确的是________
A、n个元素共需要进行n-1趟排序
B、每一趟排序最多只做一次两个元素的互换操作
C、每一趟排序时是比较相邻元素的大小
D、每一趟排序时首先寻找本趟最小元素所在的下标
答案:C
13、
有变量定义: int a[10], s; 有函数调用语句 s=f (a,10); 则以下的函数原型声明中错误的是____________
A、int f (int a[ ], int n);
B、int f (int *a, int n);
C、int f (int a, int n);
D、int f (int a[10], int n);
答案:C
14、
矩阵用二维数组来描述,以矩阵形式输出二维数组所有元素时,printf("\n");语句应该放在二层循环外、一层循环体内。
答案:正确
15、
如下定义:int a[3]={5,7,18},b=3; const int *p=a+1; , 下列语句错误的是______。
A、*p=2;
B、p=&b;
C、p++;
D、p--;
答案:A
16、
有变量定义如下: int a=10, *p=&a, **q=&p; 下列哪一个选项不能表示10______。
A、a
B、*p
C、*q
D、**q
答案:C
17、
有变量定义如下: int *p; 通过p指针申请动态空间的语句中表达错误的是________
A、p=(int *) malloc(sizeof(int));
B、p=(int *) malloc(10*sizeof(int));
C、p=(int *) calloc(10*sizeof(int));
D、p=(int *) calloc(10,sizeof(int));
答案:C
18、
int (*pf) (int x); 与 int *pf (int x); 是不一样的,前者是定义了一个函数指针pf ,后者是声明了一个返回值类型为int *的函数。
答案:正确
19、
如有定义int a,*p=&a;输入语句为scanf("%d",_________);或者scanf("%d",_________);输出为printf("%d",________);或者printf("%d",________)。
A、&a,p,a,*p
B、&a,&p,a,p
C、a,&p,a,*p
D、&a,p,a,p
答案:A
20、
设int *p, x, a[5]={1,2,3,4,5}; p=a; 能使x的值为2的语句是 。
A、x=a[2];
B、x=*(p+2);
C、a++; x=*a;
D、x=*(a+1);
答案:D
21、
下列对指针p的操作,正确的是 。
A、int *p; *p=2 ;
B、int a[5]={ 1,2 ,3,4,5},*p=&a; *p=5 ;
C、int a,*p=&a;*p=2;
D、float a[5]; int *p=&a;
答案:C
22、
若有说明:int a[ ]={15,12,-9, 28,5, 3 },*p=a, 则下列哪一种表达错误______。
A、*(a=a+3)
B、*(p=p+3)
C、p[p[4]]
D、*(a+*(a+5))
答案:A
23、
若有说明:int *p1,*p2,m=5,n; 以下均是正确赋值语句的选项是________。
A、p1=&m; p2=&p1;
B、p1=&m; *p1=*p2;
C、p1=&m; p2=p1;
D、p1=&m; *p2= *p1;
答案:C
24、
若定义int m[10]={9,4,12,8,2,10,7,5,1,3},*p=m;下列哪一个表达式的结果与其他3个表达式的结果不同________。
A、sizeof(p[3])
B、sizeof(m)
C、sizeof(*m)
D、sizeof(*p)
答案:B
25、
设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是________。
A、scanf("%f",&x[6]);
B、scanf("%lf",*(x+6));
C、scanf("%lf",p+6);
D、scanf("%lf",p[6]);
答案:C
26、
若有定义及赋值:int a[10]={0,1,2,3,4,5,6,7,8,9},*p; p=a+1; 则引用数组a中值是5的元素的表达式是________。
A、a[4]
B、*(p+4)
C、a+5
D、*p[5]
答案:B
27、
设int x[]={1,2,3,4,5,6},*p=x; 则值为3的表达式是________。
A、p+=2; *p++;
B、p+=2; *++p;
C、p+=3; *p;
D、p+=2; ++*p;
答案:A
28、
设有下面的程序段:int arr [10]={1,2,3}, *p=arr; 下列叙述正确的是________
A、arr和p完全相同
B、*(p+i)和&arr [i]相等
C、*(p+4)与arr [4]相等
D、arr++表示arr [1]的地址
答案:C
29、
有定义,int a[2][3],(*p)[3]; p=a;对a中数组元素值的正确引用是
A、*(p+2)
B、*p[2]
C、p[1]+1
D、*(*(p+1)+2)
答案:D
30、
设有语句int a[2][3],下面哪一种不能表示元素a[i][j] ________
A、*( a[i] + j )
B、*(*( a+ i ) + j )
C、*( a + i*3 + j )
D、*( *a + i*3 + j )
答案:C
31、
若有定义: int *p[4];,则标识符p______
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个行指针变量,指向一个含有4个整型元素的一维数组
D、非法定义
答案:【点击查看答案】
32、
有变量定义如下: int a=10, *p=&a, **q=&p; 下列哪一个选项不能表示10______。
A、a
B、*p
C、*q
D、**q
答案:【点击查看答案】
33、
有变量定义如下: int *p; 通过p指针申请动态空间的语句中表达错误的是________
A、p=(int *) malloc(sizeof(int));
B、p=(int *) malloc(10*sizeof(int));
C、p=(int *) calloc(10*sizeof(int));
D、p=(int *) calloc(10,sizeof(int));
答案:【点击查看答案】
34、
#include<stdio.h> void sub(int x,int y,int *z) { *z=y-x; } int main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d\n",a,b,c); return 0; } 该程序的输出结果为_________________
答案:【点击查看答案】
35、
#include <stdio.h> void fun(int x,int *y) { x+=*y; *y+=x; } int main( ) { int x=5,y=10; fun(x,&y); fun(y,&x); printf("%d,%d",x,y); return 0; } 该程序的输出结果为_________________
答案:【点击查看答案】
36、
#include <stdio.h> int main( ) { int arr[10]={2,3,-9,5,7,0,4,-1,6,-7},*p; int sum=0; for (p=&arr[3];p<arr+10;) sum+=*p++; printf("%d",sum); return 0; } 该程序的输出结果为_________________
答案:【点击查看答案】
37、
#include <stdio.h> int main() { int j, a[]={1,3,5,7,9,11,13,15},*p=a+5; for(j=3; j; j--) switch(j) { case 1: case 2: printf("%d,",*p++); break; case 3: printf("%d,",*(--p)); } return 0; } 该程序的输出结果为_________________
答案:【点击查看答案】
38、
#include <stdio.h> #define N 5 int fun(int *s, int a, int n) { int j; *s=a; j=n; while(a!=s[j]) j--; return j; } int main() { int s[N+1]; int k; for(k=1; k<=N; k++) s[k]=k+1; printf("%d\n",fun(s,4,N)); return 0; } 该程序的输出结果为_________________
答案:【点击查看答案】
39、
对n个元素的一维数组进行选择法排序,需要进行______趟排序.(答案中间不要加空格,避免格式错误)
答案:【点击查看答案】
40、
有定义: int a[5]={0,1,2,3,4},*p=a; 为了表达元素值为2的元素,除了可以用a[2]表示以外,还可以有___种等效的表示方法?(答案只填写一个阿拉伯数字)
答案:【点击查看答案】
41、
数列移位
答案:【点击查看答案】
42、
交换法排序
答案:【点击查看答案】
43、
编写函数同时求两个整数的和与差
答案:【点击查看答案】
44、
“程序存储思想”是__________提出来的。
A、Dennis M. Ritchie
B、Bell
C、Von Neumann
D、Ken Thompsom
答案:【点击查看答案】
45、
如果计算机有32根地址总线,则其存储器的最大容量可达____________。
A、4GB
B、32M
C、16GB
D、32GB
答案:【点击查看答案】
46、
存储器的容量可以通过插入内存条进行无限扩充。
答案:【点击查看答案】
47、
以下哪一种是从源程序到目标程序的翻译方式_________。
A、编辑
B、编译
C、链接
D、运行
答案:【点击查看答案】
48、
C语言和JAVA语言都是面向对象的程序设计语言。
答案:【点击查看答案】
49、
十进制数346所对应的八进制数为
A、235
B、532
C、237
D、732
答案:【点击查看答案】
50、
在进制转换中,一位八进制数相当于三位二进制数,一位十六进制数相当于四位二进制数。
答案:【点击查看答案】
51、
以下哪个是冯诺伊曼的思想____________。
A、计算机应采用二进制
B、程序存储的思想
C、计算机由硬件和软件组成
D、软件分为系统软件和应用软件
答案:【点击查看答案】
52、
关于软件,下列说法不正确的是_____________。
A、软件的核心是程序
B、软件就是程序
C、软件是程序和文档的总和
D、软件不能缺少文档
答案:【点击查看答案】
53、
以下关于源程序与目标程序的说法,不正确的是____________。
A、用机器语言编写的源程序就是目标程序
B、汇编语言写的源程序需要汇编为目标程序
C、C语言源程序需要编译为目标程序
D、所有高级语言的编译器均一样
答案:【点击查看答案】
54、
第一个结构化程序设计语言是_________________。
A、PASCAL
B、C
C、BASIC
D、FORTRAN
答案:【点击查看答案】
55、
贝尔实验室的Dennis M. Ritchie于1973年用C语言重写了__________操作系统。
A、DOS
B、UNIX
C、WINDOWS
D、LINUX
答案:【点击查看答案】
56、
如果计算机有32根地址总线,其存储器的最大存储容量为_______________。
A、64MB
B、32GB
C、4GB
D、8GB
答案:【点击查看答案】
57、
二进制数10101010101所对应的八进制数为________________。
A、2525
B、5252
C、555
D、222
答案:【点击查看答案】
58、
二进制数10101010101所对应的十六进制数为__________________。
A、222
B、555
C、2525
D、5252
答案:【点击查看答案】
59、
可运行的C语言程序的扩展名为___________________。
A、obj
B、cpp
C、exe
D、c
答案:【点击查看答案】
60、
C程序编译之后生成的文件名的扩展名是_________________。
A、.exe
B、.obj
C、.c
D、.bin
答案:【点击查看答案】
61、
C语言源程序开发的第一步为_____________。
答案:【点击查看答案】
62、
观察本章的“Hello world”C程序,打印“Hello world”用的函数为_____________。
答案:【点击查看答案】
63、
十进制数348所对应的八进制数为______________。
答案:【点击查看答案】
64、
C程序的完整开发过程包括:编辑、_________、链接和运行。
答案:【点击查看答案】
65、
观察本章的“Hello wolrd”C源程序,每条语句以_______结束。
答案:【点击查看答案】
66、
_____可以作为正确的变量名。
A、R&D
B、_filename
C、for
D、$X;
答案:【点击查看答案】
67、
C程序的执行从_________开始。
答案:【点击查看答案】
68、
一个C程序有______个主函数。
答案:【点击查看答案】
69、
sizeof是一个函数名。
答案:【点击查看答案】
70、
在C语言中,对于任何一种数据类型,都要严格规定该类数据的存储结构、取值范围和能对其进行的操作。
答案:【点击查看答案】
71、
单精度和双精度都是实型,所以是一样的。
答案:【点击查看答案】
72、
在C语言中,用关键字__ __定义单精度实型变量。
答案:【点击查看答案】
73、
下列_____数值最大?
A、012
B、0x12
C、12
D、120
答案:【点击查看答案】
74、
下列______是合法的实型常量?
A、234E3.1
B、E3
C、234.
D、234
答案:【点击查看答案】
75、
______不同于其他三个字符?
A、‘a’
B、‘A’
C、‘\x41'
D、'\101'
答案:【点击查看答案】
76、
________是C语言中合法的字符串常量?
A、How are you?
B、"How are you ?"
C、'How are you?'
D、$How are you?$
答案:【点击查看答案】
77、
有变量定义如下:double num; 要使得num的值为3.14159,则正确的输入语句为:________。
A、scanf("%lf",num);
B、scanf("%lf",&num);
C、scanf("%d",&num);
D、scanf("%f",&num);
答案:【点击查看答案】
78、
阅读以下程序 #include int main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f\n”,case,printF); return 0; } 该程序编译时产生错误,其出错原因是________。
A、定义语句出错,case不能用作用户自定义标识符
B、定义语句出错,printF不能用作用户自定义标识符
C、定义语句无错,scanf不能作为输入函数使用
D、定义语句无错,printf不能输出case的值
答案:【点击查看答案】
79、
#include<stdio.h> int main( ) { scanf("%3d%f",&x,&y); printf(“%d,%f\n”,x,y); return 0; } 该段代码编译没有错误,可正常运行。
答案:【点击查看答案】
80、
请写出下面程序的输出结果。 #include<stdio.h> int main() { char ch='A'+10; printf("C=%c,C=%d,c=%c,c=%d\n",ch,ch,ch+32,ch+32); return 0; }
答案:【点击查看答案】
81、
C语言short型数据占2个字节,则unsigned short型数据的取值范围是______。
A、0 ~255
B、0~65535
C、-256~255
D、-32768~32767
答案:【点击查看答案】
82、
请写出下面程序的输出结果。 #include<stdio.h> int main( ) { short int a=32767,b; b=a+1; printf("a=%d,b=%d\n",a,b); return 0; }
答案:【点击查看答案】
83、
下列不正确的转义字符是______。
A、'\v'
B、'\"'
C、'\68'
D、'\0'
E、'\t'
F、'\x4f '
答案:【点击查看答案】
84、
下列不正确的常量表示是_______。
A、0x33FF
B、1.2e0.5
C、2L
D、'\72'
E、'HelloWorld!'
F、"我爱中国"
答案:【点击查看答案】
85、
若函数中有定义语句:int k;,则下列说法正确的是_______。
A、系统将自动给k赋初值0
B、这时k中有值但是无意义
C、系统将自动给k赋初值-1
D、这时k中无任何值
答案:【点击查看答案】
86、
关于C语言中数的表示,以下叙述正确的是________。
A、只有整型数在允许范围内能精确无误地表示,实型数会有误差
B、只要在允许范围内整型和实型都能精确表示
C、只有实型数在允许范围内能精确无误地表示,整型数会有误差
D、只有八进制表示的数才不会有误差
答案:【点击查看答案】
87、
C语言中,"\x5d"在内存中占用的字节数是_______。
A、2
B、3
C、4
D、1
E、5
答案:【点击查看答案】
88、
C语言中,一个字符型变量在内存中占用的字节数是_______。
A、1
B、3
C、4
D、2
答案:【点击查看答案】
89、
以下正确的 C 语言变量名是_______。
A、for
B、excise_1
C、a+b
D、5test
答案:【点击查看答案】
90、
下列选项中,正确的整型常量是________.
A、018
B、0xfa
C、12,345
D、01a
E、0171
F、33ff
答案:【点击查看答案】
91、
下列选择中为C语言中非法常量的是_______.
A、'as'
B、'\\'
C、01177
D、.2e5
E、'\x61'
F、1E-2
答案:【点击查看答案】
92、
下列哪个选项属于C语言中的合法字符串常量 。
A、$abc$
B、how are you
C、"china"
D、'hello'
E、/*上课了*/
答案:【点击查看答案】
93、
#include <stdio.h> int main() { double i=3.1415926; printf("%.4f,%4.3f,%6.2f", i, i, i); return 0; }
A、输出错误
B、3.14,.142,3.14
C、3.1416,3.142, 3.14
D、0.1415,3.141, 3.14
E、3.14,3.141,3.1416
答案:【点击查看答案】
94、
有以下程序段 char ch; ch='a'; printf("%c,%d",ch, ch); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是
A、因变量类型与格式描述符的类型不匹配输出无定值
B、输出项与格式描述符个数不符,输出为零值或不定值
C、a,97
D、'a',a
E、'a',97
F、97,a
答案:【点击查看答案】
95、
若有以下定义和语句,char c1 = ‘b’, c2 = ‘e’; printf("%d, %c\n", c2-c1, c2-‘a’+’A’); 则输出结果是___
A、3,E
B、类型不匹配,编译报错
C、无法计算,输出乱码
D、3,e
E、4,E
F、b,E
答案:【点击查看答案】
96、
语句printf(“You are \rA\x20niceE\bboy!”); 的输出结果是______。
答案:【点击查看答案】
97、
有scanf输入一个double型变量时,需要使用格式转换说明符为% 。
答案:【点击查看答案】
98、
程序中定义的一个字符型变量在内存中占用___ 个字节。
答案:【点击查看答案】
99、
C语言程序中需要进行输入/输出处理时,必须包含的头文件是 。
答案:【点击查看答案】
100、
C语言源程序名的后缀是_____。
答案:【点击查看答案】
101、
需要从键盘给一个字符型变量ch输入一个字符,使用的输入语句是:ch= (); 。
答案:【点击查看答案】
102、
使用标准输出函数输出一个double型的变量x,要求输出数值占6列,即6个数字位,并保留2位小数位,则输出语句为printf("%_____f",x);。如:x=123.4567,要求输出在屏幕上为123.46;x=3.45678,则输出为□□3.46;□表示空格。
答案:【点击查看答案】
103、
单目运算符的优先级高于双目算术运算符。
答案:【点击查看答案】
104、
数值368不是一个合法的C语言表达式。
答案:【点击查看答案】
105、
下列运算符号的结合性是从右往左的是______。
A、==
B、()
C、?:
D、&&
答案:【点击查看答案】
106、
运算符“()”的优先级高于运算符“++”
答案:【点击查看答案】
107、
以下运算符中优先级最低的是_______。
A、赋值运算符
B、关系运算符
C、逻辑运算符
D、逗号运算符
答案:【点击查看答案】
108、
设m,n,a,b,c,d均为0,执行(m=a= =b)||(n=c= =d)后,m、n的值是 。
A、0,0
B、0,1
C、1,0
D、1,1
答案:【点击查看答案】
109、
设float m=4.0,n=4.0;使m为10.0的表达式是____。
A、m -= n*2.5
B、m/=n+9
C、m*=n-6
D、m+=n+2
答案:【点击查看答案】
110、
设有语句:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是_______。
答案:【点击查看答案】
111、
定义 int x,y; 执行 y=(x=1,++x,x+2); 语句后,y =________。
答案:【点击查看答案】
112、
以下结果为整数的表达式(设有 int i;char c;float f; )____。
A、i+f
B、i*c
C、c+f
D、i+c+f
答案:【点击查看答案】
113、
a+b%3*(int)(a-b)/4 (设double a=13.6; int b=8)结果为:
答案:【点击查看答案】
114、
设a=2,b=3;则表达式a^b>>2的值是____.
A、00000011
B、00000110
C、00000100
D、00000010
答案:【点击查看答案】
115、
变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是_______ 。
A、a^b
B、a|b
C、a&b
D、a<<4
答案:【点击查看答案】
116、
sizeof 是一个_____。
A、运算符
B、常量
C、变量
D、函数
答案:【点击查看答案】
117、
有以下变量定义:int k=9,x=14;,则执行语句k=(x%=k)-(k%=4)后,k的值为_____。
A、3
B、5
C、1
D、4
答案:【点击查看答案】
118、
判断char型变量c1是否为大写字母的正确表达式是_____。
A、'A'<=c1<='Z'
B、(c1>='A')&(c1<='Z')
C、(c1>='A')&&(c1<='Z')
D、('A'<=c1) AND ('Z'>=c1)
E、('A'<=c1)&&('Z'>=c1)
答案:【点击查看答案】
119、
设double m=4.0,n=4.0;使m为10.0的表达式是____。
A、m-=n*2.5
B、m/=n+9
C、m*=n-6
D、m+=n+2
答案:【点击查看答案】
120、
设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是_______。
A、x++; printf(“%d\n”,x);
B、n=++x; printf(“%d\n”,n);
C、++x; printf(“%d\n”,x);
D、n=x++; printf(“%d\n”,n);
答案:【点击查看答案】
121、
若有变量定义:double x=4.5,y=2.5;则表达式(x+y)/2+(int)x%(int)y结果为__ ___。
A、3.5
B、5.5
C、3.0
D、5.0
答案:【点击查看答案】
122、
定义 int x,y; 执行 y=(x=1,++x, x+2); 语句后,x=___ __,y =_ ____。
A、2 4
B、1 3
C、2 3
D、4 4
答案:【点击查看答案】
123、
表达式13/4*sqrt(6.25)/8 值的数据类型为__________。
A、int
B、double
C、float
D、不确定
答案:【点击查看答案】
124、
在以下的运算符中,运算对象都必须是整型数的是 。
A、%
B、+
C、++
D、( )
答案:【点击查看答案】
125、
设x是double型变量,则能将x的值四舍五入保留到小数点后两位的表达式是 。
A、(x*100.0+0.5)/100.0
B、(int)(x*100+0.5)/100.0
C、x*100+0.5/100.0
D、(x/100+0.5)*100.0
答案:【点击查看答案】
126、
若有定义:int a=1,b=1,c,d;,则语句 c=(a++) + (++b); 执行后a=________;b=_________,c=_________。
A、2 2 4
B、2 2 3
C、1 1 2
D、1 2 3
答案:【点击查看答案】
127、
将计算半周长的数学公式:
写成如下各种形式,已知a、b、c均为整型变量,不正确的是________。
A、x=0.5*(a+b+c)
B、x=1/2*(a+b+c)
C、x=(a+b+c)/2.0
D、x=(float)(a+b+c)/2
E、x=1.0/2*(a+b+c)
F、x=(float)((a+b+c)/2)
答案:【点击查看答案】
128、
设有语句:int a = 3 , b =5, m; 则执行语句:m = a<=3 && a+b<8 后,m的值为_____。
A、0
B、1
C、2
D、3
答案:【点击查看答案】
129、
需要将一个三位数字的整型数x中的十分位数字b2(如368中的6)提取出来,下列C语句________不能实现。
A、b2=x%100/10
B、b2=x/10%10
C、b2=x/100; b2=(x-b2*100)/10
D、b2=x%10/10
答案:【点击查看答案】
130、
请将三角形面积公式:
写成合法的C语言表达式_______。
A、sqrt(s(s-a)(s-b)(s-c))
B、sqrt(s*(s-a)*(s-b)*(s-c))
C、sqrt(s*(s-a)(s-b)(s-c))
D、sqrt(s.(s-a).(s-b).(s-c))
答案:【点击查看答案】
131、
设已定义字符型变量ch,执行语句:ch=’D’+32-3; 后ch的值为__________。
A、d
B、a
C、b
D、A
E、B
答案:【点击查看答案】
132、
在C语言的赋值表达式中,赋值符号左边必须是已经定义过的_________。
A、变量
B、变量名
C、表达式
D、常量
E、函数
F、任意符号
答案:【点击查看答案】
133、
设有语句:int a=7; float x=2.5, y=4.7;,则表达式x+a%3*(int) (x+y)%2/4的值是 。(小数点后面保留一位)
答案:【点击查看答案】
134、
若有int x=1,y=1,表达式(!x || y--)的值等于 。
答案:【点击查看答案】
135、
若有int n = 2;执行语句:n += n-= n*n后, n= 。
答案:【点击查看答案】
136、
若有int n = 2;执行语句:n += n-= n*=n后, n= 。
答案:【点击查看答案】
137、
设有语句:int a = 3 , b =5, m; 则执行语句:(m = a<=3)&& a+b<8 后,m的值为___。
答案:【点击查看答案】
138、
从键盘输入一个华氏温度F,计算对应的摄氏温度C。计算公式:C=5×(F-32)/9,C和F均定义为double型变量。
答案:【点击查看答案】
139、
C语言的语句分为____类
A、5
B、4
C、6
D、3
答案:【点击查看答案】
140、
用流程图描述一个只有顺序结构而没有选择结构和循环结构的算法时,一定用不到的流程图框型是______。
A、起止框
B、输入/输出框
C、处理框
D、判断框
答案:【点击查看答案】
141、
下列可以控制循环结构的控制语句是:______
A、for语句
B、while语句
C、do...while语句
D、switch语句
答案:【点击查看答案】
142、
下列可能出现在顺序结构程序中的控制语句是__________
A、if语句
B、for语句
C、while语句
D、return语句
答案:【点击查看答案】
143、
可以将例4.1中的两条语句: area=sqrt(p*(p-edge1)*(p-edge2)*(p-edge3)); printf("area=%lf\n",area); 合并为一条语句: printf("area=%lf\n",sqrt(p*(p-edge1)*(p-edge2)*(p-edge3))); 同时删除area变量的定义。
答案:【点击查看答案】
144、
以下关于单分支if和双分支if的描述中不正确的是_____________.
A、单分支if和双分支if都可以用于处理存在两种可能选择的情况
B、单分支if和双分支if在if后的条件满足时都只允许执行一条语句
C、单分支if和双分支if在if后的条件不满足时都不执行任何语句
D、单分支if和双分支if在语法上都看成是一条语句
答案:【点击查看答案】
145、
下列四段代码,哪一段的执行效果与其他三种不同__________.
A、if (x>0) y=1; else if (x<0) y=-1; else y=0;
B、if (x>=0) if (x>0) y=1; else y=0; else y=-1;
C、y=1; if (x==0) y=0; if (x<0) y=-1;
D、y=1; if (x==0) y=0; else y=-1;
答案:【点击查看答案】
146、
关于嵌套if语句与switch语句的关系描述中不正确的是__________.
A、二者都可以处理三种及以上可能的选择
B、二者的适用范围完全相同
C、switch语句总是可以用嵌套if语句来完全等效替代,反之不然
D、二者都是控制选择结构的语句,语法上都是一条语句
答案:【点击查看答案】
147、
关于switch语句的描述中不正确的是__________.
A、switch后的表达式类型不可以是实型
B、每一个case后的常量只能有一个
C、default分支必须要有,用于处理swith后的表达式结果与所有常量均不相等时的情况
D、在每个分支处理结束后配合使用break语句才能真正实现逻辑上的多分支处理
答案:【点击查看答案】
148、
C 语言中 while 和 do-while 循环的主要区别是 __。
A、do-while 的循环体至少无条件执行一次而while的循环体可能一次也不执行
B、while 的循环控制条件比 do-while 的循环控制条件严格
C、do-while 允许从外部转到循环体内
D、do-while 的循环体不能是复合语句
答案:【点击查看答案】
149、
以下程序段 __。 x=-1; do { x=x*x; } while(!x);
A、是死循环
B、循环体执行二次
C、循环体执行一次
D、有语法错
答案:【点击查看答案】
150、
若k是int类型变量,有以下for语句: for(k=-1; k=1; k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是________。
A、循环体执行两次
B、循环体执行一次
C、循环体一次也不执行
D、死循环
答案:【点击查看答案】
151、
假设程序中已有定义:int s=0, i; 下列哪一段代码无法正确实现求1到10的和______。
A、for (i=1; i<=10 ;i++) s+=i;
B、for (i=1; ; i++) { if (i>10) break; s+=i; }
C、i=1; while (i<=10) s+=i++;
D、i=1; do { s+=++i; }while (i<=10);
答案:【点击查看答案】
152、
下面程序段中,循环语句的循环次数是______。 int x=0; while( x<6 ) { if ( x%2 ) continue; if ( x==4 ) break; x++; }
A、1
B、4
C、6
D、死循环
答案:【点击查看答案】
153、
设有变量定义: int i; 下列两段代码的执行效果完全相同。 第一段代码: for (i=1;i<=5;i++) { if (i%2) printf("*"); else continue; printf("#"); } 第二段代码: for (i=1;i<=5;i++) if (i%2) { printf("*"); printf("#"); }
答案:【点击查看答案】
154、
有语句定义:int x,y;,则程序段中“{…循环体….} ”的执行次数是 。 for (i=5; i; i--) for (j=0; j<4; j++) {…循环体….}
A、20
B、24
C、25
D、30
答案:【点击查看答案】
155、
打印一个规则图形需要用到两层循环,外层控制行变化,第一层的循环体内最多需要完成三个功能:处理前导空格(可能要用到内层循环)、打印本行图形(可能要用到内层循环)、换行。
答案:【点击查看答案】
156、
下列程序段执行后,m的值为______。 int a=0, b=20, c=40, m=60; if (a) m=a; else if(b) m=b; else if(c) m=c;
A、0
B、20
C、40
D、60
答案:【点击查看答案】
157、
已有定义“int x = 0, y = 3;”,对于下面if语句,说法正确的是______。 if (x = y) printf(“X与Y相等\n”);
A、输出:X与Y相等,且执行完后x等于y
B、无输出
C、输出:X与Y相等,但执行完后x不等于y
D、编译出错
答案:【点击查看答案】
158、
关于switch语句,下列说法中不正确的是______。
A、case语句必须以break结束
B、default分支可以没有
C、switch后面的表达式可以是整型或字符型
D、case后面的常量值必须唯一
答案:【点击查看答案】
159、
下面程序段的运行结果是______。 int a, b=0; for ( a=0 ; a++<=2 ; ) ; b += a; printf("%d, %d\n",a,b);
A、3,6
B、3,3
C、4,4
D、语法错误
答案:【点击查看答案】
160、
下面程序段中,循环语句的循环次数是______。 int x=0; while( x<6 ) { if ( x%2 ) continue; if ( x==4 ) break; x++; }
A、死循环
B、1
C、4
D、6
答案:【点击查看答案】
161、
若变量已正确定义,有以下程序段: int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b; printf("%d,%d,%d\n",a,b,c); 其输出结果是________。
A、程序段有语法错
B、3,5,3
C、3,5,5
D、3,5,7
答案:【点击查看答案】
162、
下列错误的语句是 __。
A、if(a>b) printf("%d",a);
B、if(a) printf("%d",a);
C、if (1) printf("%d",a);
D、if(a) ; a++; else a--;
答案:【点击查看答案】
163、
下列 __循环不是无限循环。
A、for(y=0;x=1;++y);
B、for(; ; x=0);
C、while(x=1){x=1;}
D、for(y=1,x=1;x>=++y ; x++);
答案:【点击查看答案】
164、
若a、b已定义为int 类型的变量,则执行以下语句后b的值是 __。 a=1; b=10; do {b-=a; a++;} while (b--<0);
A、9
B、-2
C、-1
D、8
答案:【点击查看答案】
165、
设所有的变量均为整型,下列循环执行结束后,变量m的值为 __。 for (i='a';i<='e';i++) { m=1; for (j=5;j>=0;j--) m+=(i-100)*j; }
A、1
B、0
C、16
D、15
答案:【点击查看答案】
166、
有下列程序段: int i,sum=0; for(i=1; ;sum++) { if (sum>10) break; sum+=++i; } 该程序段执行结束后, sum和i的值分别是______
A、11,4
B、12,4
C、16,5
D、11,5
答案:【点击查看答案】
167、
要求读入一个整数n,其值的范围是[1,10],即:n大于等于1,同时小于等于10.如果输入的n不在这个有效范围,则重新输入,直到满足范围规定为止。 则可以用do...while语句控制。 int n; do { scanf("%d",&n); }while ( ________________________ ); 下列哪一个条件填入后无法正确控制?
A、n<1||n>10
B、!(n>=1&&n<=10)
C、!(n>0&&n<11)
D、n>=1||n<=10
答案:【点击查看答案】
168、
有以下程序段,while 循环的循环体执行的次数是 。 int k=0; while(k!=1) k++;
A、0次
B、1次
C、有语法错
D、无限次
答案:【点击查看答案】
169、
下列程序段执行结束后,k的值为______ int i,j,k=0; for (i=1;i<=3; i++) for (j=1;j<=i; j++) k+=i*j;
A、25
B、20
C、30
D、36
答案:【点击查看答案】
170、
有如下程序段: int x; scanf("%d",&x); switch ( x ) { case 9: x++; break; case 10: x++; case 11: x++; break; default: x++; } 如果最初输入的x的值为10,则switch语句结束后x的值为________,
A、10
B、11
C、12
D、13
答案:【点击查看答案】
171、
#include <stdio.h> int main( ) { int x=1, y=1, z=1; switch(x) { case 1: switch(y) { case 1: printf("!!"); break; case 2: printf("@@"); break; case 3: printf("##"); break; } case 0: switch(z) { case 0: printf("$$"); case 1: printf("^^"); case 2: printf("&&"); } default: printf("**"); } return 0; } 该程序的运行结果是________ (提示:输出的各字符之间没有空格,在英文半角输入状态下输入的字符有效)
答案:【点击查看答案】
172、
#include <stdio.h> int main( ) { int m=0, n=4521; do { m = m * 10 + n % 10; n /= 10; }while(n); printf( "%d\n", m ); return 0; } 该程序的运行结果是________
答案:【点击查看答案】
173、
#include <stdio.h> int main( ) { int x, y=0, z=0; for ( x=1 ; x<=5 ; x++ ) { y = y + x; z = z + y; } printf( "%d\n", z ); return 0; } 该程序的运行结果是________
答案:【点击查看答案】
174、
#include<stdio.h> int main( ) { int a=1, b=2; for( ; a<8 ; a++ ) { a += 2; if ( a == 6 ) continue; if ( a > 7 ) break; b++; } printf( "%d,%d\n", a, b ); return 0; } 该程序的运行结果是________
答案:【点击查看答案】
175、
#include <stdio.h> int main() { int x=5,y=4,z=3; if(x>y>z) printf("right"); else printf("wrong"); return 0; } 该程序的运行结果是________
答案:【点击查看答案】
176、
循环的终止一般是在while后的表达式或for语句的表达式2的值为假的时候不再进入循环体,如果希望从循环体中直接退出循环,则可以通过在循环体内使用_____语句实现。
答案:【点击查看答案】
177、
switch语句中的______ 分支是可选项,表示switch后的表达式与任何case后的常量都不相等时执行此分支。
答案:【点击查看答案】
178、
计算并输出s的值。s的计算方法见下式,其中m为实数,其值由键盘读入。计算时,要求最后一项的绝对值小于1e-4,输出结果保留两位小数。
答案:【点击查看答案】
179、
以每行8个的形式输出100-999内的质数。
答案:【点击查看答案】
180、
打印星号组成的倒置等腰三角形
答案:【点击查看答案】
181、
在C语言中,模块化程序设计中的子模块通常是指 。
A、子程序
B、子过程
C、函数
D、方法
答案:【点击查看答案】
182、
C程序的函数主要分为库函数和 函数。
答案:【点击查看答案】
183、
以下 不是函数首部的三要素。
A、函数名
B、形式参数表
C、返回值类型
D、函数体
答案:【点击查看答案】
184、
函数的返回值类型由________决定。
A、return后的表达式类型
B、定义函数时指定的返回值类型
C、调用函数时临时决定
D、主调用函数的类型
答案:【点击查看答案】
185、
函数声明的作用是把函数的首部信息通知编译系统,以便在调用该函数时进行对照检查。
答案:【点击查看答案】
186、
若有函数原型:double f ( int , double ) ;主函数中有变量定义:int x=1 ; double m=1.6 , n ; 下列主函数中对f函数的调用错误的是 。
A、n=f(x, m+1);
B、printf("%f", f(x+2, 2.4));
C、f(x, m);
D、n=f(x);
答案:【点击查看答案】
187、
若主函数有变量定义:int x=1 ; double y=2.3 ; 且有合法的函数调用语句f ( y , x); 则下列关于函数f的原型声明中一定错误的是 。
A、void f(double, int);
B、int f(int , int);
C、int f(double, double);
D、void f(double, int, int);
答案:【点击查看答案】
188、
以下程序的运行结果是 。 #include <stdio.h> int Min(int x, int y) { return x<y?x:y; } int main( ) { int x=13,y=5,z=22; printf("%d\n",Min(x,Min(y,z))); return 0; }
A、3
B、4
C、5
D、6
答案:【点击查看答案】
189、
下面关于函数的理解,不正确的是 。
A、函数可以嵌套定义
B、函数可以嵌套调用
C、函数可以没有形式参数
D、函数的缺省返回类型为int型
答案:【点击查看答案】
190、
在C语言中,一个函数可以直接或间接地调用自己。
答案:【点击查看答案】
191、
下面哪一种变量一定不是局部变量 。
A、静态变量
B、形式参数变量
C、外部变量
D、自动变量
答案:【点击查看答案】
192、
下面关于静态局部变量的描述,不正确的是 。
A、静态局部变量只被初始化一次
B、静态局部变量作用域为整个程序
C、静态局部变量生命期为整个程序
D、静态局部变量作用域为当前函数或语句块
答案:【点击查看答案】
193、
关于同名问题,下列哪一种理解不正确 。
A、不同函数的局部变量可以同名
B、形式参数可以与对应的实在参数变量同名
C、外部变量可以与局部变量同名
D、形式参数可以与函数体内的局部变量同名
答案:【点击查看答案】
194、
关于作用域的描述,下列哪一种说法是正确的 。
A、形式参数的作用域一定是它所在的整个函数
B、全局变量的作用域一定是整个程序
C、局部变量的作用域一定是整个函数
D、静态局部变量的作用域不仅限于本函数
答案:【点击查看答案】
195、
模块化程序设计的基本思想是自底向上、不断组合。
答案:【点击查看答案】
196、
C语言程序的基本单位是 。
答案:【点击查看答案】
197、
函数的返回值类型由________决定。
A、return后的表达式类型
B、定义函数时指定的返回值类型
C、调用函数时临时决定
D、主调用函数的类型
答案:【点击查看答案】
198、
以下选项中叙述错误的是________。
A、C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B、C程序的复合语句内可以定义变量,其作用域仅限本复合语句内
C、C程序函数中定义的自动变量,系统不自动赋确定的初值
D、C程序函数的形参不可以说明为static型变量
答案:【点击查看答案】
199、
对于 C 语言的函数,下列叙述中正确的是________。
A、函数的定义不能嵌套,但函数调用可以嵌套
B、函数的定义和调用都不能嵌套
C、函数的定义可以嵌套,但函数调用不能嵌套
D、函数的定义和调用都可以嵌套
答案:【点击查看答案】
200、
以下函数调用语句中含有________个实参。 func((exp1,exp2),(exp3,exp4,exp5));
A、1
B、2
C、4
D、5
答案:【点击查看答案】
201、
若主函数有变量定义:int x=1 ; double m=2.3 ; 且有合法的函数调用语句f ( m , x); 则下列关于函数f的原型声明中一定错误的是 。
A、void f ( double , int );
B、int f (int , int );
C、void f ( double , int , int );
D、int f ( double , double );
答案:【点击查看答案】
202、
关于return语句的理解,下列哪一种说法是错误的 。
A、当函数具有非void的返回值类型时,函数体中一定要有return 语句
B、当函数的返回值类型为void时,函数体中可以没有return语句
C、return 后的表达式若与函数返回类型不一致时,一定会在编译时出错
D、当执行return语句时,系统自动生成一个无名变量,获取return后的表达式的值
答案:【点击查看答案】
203、
有以下程序 int fun(int x,int y){return(x+y);} int main() { int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d\n",sum); return 0; } 执行后的输出结果是________。
A、5
B、6
C、8
D、9
答案:【点击查看答案】
204、
若已定义一个返回值为void型的函数,则调用该函数的叙述中正确的是________。
A、函数调用只能作为独立的函数调用语句存在
B、函数调用可以出现在表达式中
C、函数调用可以作为一个函数实参
D、函数调用可以作为一个函数形参
答案:【点击查看答案】
205、
设有下列程序段: static char b=2; void Y ( ) { static float d=4;....... } int a=1; void X ( ) { int c=3; ...... } 关于程序段中各变量的属性,以下叙述中错误的是________。
A、a是全局变量,函数X可以访问,函数Y不能访问
B、b是全局变量,函数X和函数Y都可以访问
C、c是自动局部变量,函数X可访问,函数Y不可访问
D、d是静态变量,函数X和函数Y都可以访问
答案:【点击查看答案】
206、
关于同名问题,下列哪一种理解不正确 。
A、不同函数的局部变量可以同名
B、形式参数可以与对应的实在参数变量同名
C、外部变量可以与局部变量同名
D、形式参数可以与函数体内的局部变量同名
答案:【点击查看答案】
207、
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 。
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、传递方式有用户指定
答案:【点击查看答案】
208、
若函数定义时不指明函数类型,则其默认的返回值类型是 。
A、void
B、任意类型
C、int
D、double
答案:【点击查看答案】
209、
以下 存储类型在变量未赋值的情况下,系统自动初始化为0。
A、auto
B、register
C、static
D、省略不表明
答案:【点击查看答案】
210、
以下叙述中正确的是 。
A、给函数名命名时允许用数字开头
B、在函数体中只能出现一次return语句
C、函数调用时,不必区分函数名称的大小写
D、调用函数时,函数名必须与被调用函数定义时的函数名完全一致
答案:【点击查看答案】
211、
下面关于静态局部变量的描述,不正确的是______。
A、静态局部变量存储在静态数据区
B、静态局部变量全局可见
C、静态局部变量还是局部可见
D、静态局部变量只会被初始化一次
答案:【点击查看答案】
212、
C语言程序的基本单位是 。
答案:【点击查看答案】
213、
一个函数的完整定义由函数首部和 组成。
答案:【点击查看答案】
214、
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________(传值或传地址这两种之间选填一个)。
答案:【点击查看答案】
215、
若函数定义时不指明函数类型,则其默认的返回值类型是________。(用表达类型的关键字来描述)
答案:【点击查看答案】
216、
定义静态局部变量的关键字是 。
答案:【点击查看答案】
217、
每一个C语言源程序必须有一个__________函数。
答案:【点击查看答案】
218、
C语言中,表示函数返回的关键字是 。
答案:【点击查看答案】
219、
按作用域变量可分为两类,分别是局部变量和 变量。
答案:【点击查看答案】
220、
求圆锥体的体积和表面积
答案:【点击查看答案】
221、
验证哥德巴赫猜想之一
答案:【点击查看答案】
222、
若有说明:int a[10];则对a 数组元素的正确引用是________。
A、a[10]
B、a[3.5]
C、a(5)
D、a[10-10]
答案:【点击查看答案】
223、
C语言中,数组名代表________。
A、数组全部元素的值
B、数组首地址
C、数组第一个元素的值
D、数组元素的个数
答案:【点击查看答案】
224、
以下不能对二维数组a进行正确初始化的语句是________。
A、int a[2][3]={0};
B、int a[][3]={{1,2},{0}};
C、int a[2][3]={{l,2},{3,4},{5,6}};
D、int a[][3]={1,2,3,4,5,6};
答案:【点击查看答案】
225、
若有以下说明:int array[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是 __。
A、array['d'- 'c']
B、array['d'-c]
C、array[g-c]
D、array[4]
答案:【点击查看答案】
226、
以下程序编译运行后输出 。 #include <stdio.h> double F(int x) { return(3.14*x*x); } int main() { int a[3]={1,2,3}; printf("%5.2f\n",F(a[1])); return 0; }
A、3.14
B、12.56
C、28.26
D、编译出错
答案:【点击查看答案】
227、
以下程序运行后的输出结果是 。 #include <stdio.h> #define N 20 void fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } int main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); return 0; }
A、10234
B、12344
C、12334
D、12234
答案:【点击查看答案】
228、
以下定义数组的语句中错误是的 。
A、int num[]={1,2,3,4,5,6};
B、int num[][3]={{1,2},3,4,5,6};
C、int num[2][4]={{1,2},{3,4},{5,6}};
D、int num[][4]={1,2,3,4,5,6};
答案:【点击查看答案】
229、
以下对二维数组a的说明正确的是 。
A、int a[3][];
B、float a(3,4);
C、double a[1][4];
D、float a(3)(4);
答案:【点击查看答案】
230、
以下对二维数组a进行正确初始化的语句是 。
A、int a[2][ ]={0};
B、int a[][3]={{1,0,1},{5,2,3}};
C、int a[2][4]={{1,0,1},{5,2},{3}};
D、int a[][3]={{1,0,1,0},{},{5,2}};
答案:【点击查看答案】
231、
以下程序的运行结果是: 。 #include <stdio.h> #define N 4 void fun(int a[][N],int b[]) { int i; for(i=0;i<N;i++) b[i]=a[i][i]-a[i][N-1-i]; } int main() { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i; fun(x,y); for(i=0;i<N;i++) printf("%d,",y[i]); printf("\n"); return 0; }
答案:【点击查看答案】
232、
以下程序的运行结果是: 。 #include <stdio.h> int main() { int a[4][4]={{1,4,3,2},{8,5,6,7},{4,9,2,1},{3,2,5,1}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]) { t=a[j][i]; a[j][i]=a[k][i]; a[k][i]=t; } for(i=0;i<4;i++) printf("%d,",a[i][i]); return 0; }
答案:【点击查看答案】
233、
以下程序段的作用是: 。 int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) { t=a[i]; j=i-1; while(j>=0&&t>a[j]) { a[j+1]=a[j]; j--; } a[j+1]=t; }
A、对数组a进行插入排序(升序)
B、对数组a进行插入排序(降序)
C、对数组a进行选择排序(升序)
D、对数组a进行选择排序(降序)
答案:【点击查看答案】
234、
若输入52<CR>,则下面程序的运行结果是 。 #include <stdio.h> int main() { int a[8]={6,12,18,42,46,52,67,73}; int low=0,mid,high=7,x; printf("Input x:"); scanf("%d",&x); while(low<=high) { mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x<a[mid]) high=mid-1; else break; } if(low<=high) printf("%d\n",mid); else printf("error!\n"); return 0; }
答案:【点击查看答案】
235、
以下程序的运行结果为 。 #include <stdio.h> void fun(int a[],int n) { int t,i,j; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } int main() { int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c,5); for(i=0;i<10;i++) printf("%d,",c[i]); printf("\n"); return 0; }
答案:【点击查看答案】
236、
在C 语言中,引用数组元素时,其数组下标的数据类型不允许的是________。
A、整型常量
B、字符型常量
C、整型常量或整型表达式
D、实型数
答案:【点击查看答案】
237、
short int类型变量占用两个字节,有如下定义:short int array[10]={0,2,4};,则数组array在内存中所占字节数是________。
A、3
B、6
C、10
D、20
答案:【点击查看答案】
238、
若有说明:int a[3][4];则对a数组元素的非法引用是________。
A、a[0][2*1]
B、a[1][3]
C、a[4-2][0]
D、a[0][4]
答案:【点击查看答案】
239、
下面程序中有错误的行是 (每行程序前面的数字表示行号)________。 1int main() 2 { int a[3]={1}; 3 int i; 4 scanf("%d",a); 5 for(i=1;i<=3;i++) a[0]=a[0]+a[i]; 6 printf("a[0]=%d\n",a[0]); 7 return 0; 8}
A、2
B、5
C、6
D、4
答案:【点击查看答案】
240、
以下程序给数组所有元素输入数据,填入 能完成该功能。 #include<stdio.h> int main() { int array[5],i=0; while(i<5) scanf("%d", ___); return 0; }
A、&array[i++]
B、&array[i+1]
C、array+i
D、&array[++i]
答案:【点击查看答案】
241、
若定义int a[][4]={1,2,3,4,5,6,7,8};a[1][0]的值是 。
A、3
B、4
C、5
D、1
答案:【点击查看答案】
242、
以下错误的定义语句是 。
A、int x[ ][3]={{0},{1},{1,2,3}};
B、int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C、int x[4][ ]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D、int x[ ][3]={1,2,3,4};
答案:【点击查看答案】
243、
以下程序的输出结果是 。 # include <stdio.h> int main ( ) { int n[2]={0},i,j,k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n [j]=n[i]+1; printf("%d\n",n[k-1]); return 0; }
A、不确定的值
B、3
C、2
D、1
答案:【点击查看答案】
244、
下列正确的一维数组初始化是 。
A、int a[5]={1,2};
B、int a[2]={1,2,3,4,5};
C、int a[5]={ , ,1,2};
D、int a{5}={1,2,3,4,5};
答案:【点击查看答案】
245、
若定义int m[10]={9,4,12,8,2,10,7,5,1,3};则m[m[4]+m[8]]的值是 。
A、8
B、12
C、10
D、7
答案:【点击查看答案】
246、
在C语言中,数组名代表 。
A、数组全部元素的值
B、数组首地址
C、数组首个元素的值
D、数组元素的个数
答案:【点击查看答案】
247、
若有说明:int a[10]; 则对a数组元素的正确引用是 。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
答案:【点击查看答案】
248、
下面程序如果只有一个错误,是 有错。 int main() //1 { double a[3]={0}; //2 int i; //3 for(i=0;i<3;i++) scanf("%d",&a[i]); //4 for(i=1;i<3;i++) a[0]=a[0]+a[i]; //5 printf("%f\n",a[0]); //6 return 0; //7 } //8
A、第2行
B、第6行
C、第4行
D、没有错误
答案:【点击查看答案】
249、
若有说明:int a[][4]={0}; 则下面叙述正确的是 。
A、只有元素a[0][0]可得到初值0
B、数组a中各元素都可以得到初值,但其值不一定是0
C、数组a中每个元素都可得到初值0
D、此说明语句不正确
答案:【点击查看答案】
250、
若有定义int b[5][7]; 根据数组存储顺序,b[0][0]为第1个元素,则第10个元素是 。
A、b[2][5]
B、b[2][4]
C、b[1][2]
D、b[1][5]
答案:【点击查看答案】
251、
当输入a<回车> bc<回车> def<回车>时,下面程序输出的第三行是 。 #include<stdio.h> int main() { char X[6]; int i; for(i=0;i<6;i++) X[i]=getchar(); for(i=0;i<6;i++) putchar(X[i]); return 0; }
答案:【点击查看答案】
252、
如下程序执行后输出 。 #include <stdio.h> int main() { static int a[3][3]; int i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) a[i][j]=a[j][i]+i*j; printf("%d,%d",a[1][2],a[2][1]); return 0; }
答案:【点击查看答案】
253、
写出程序的运行结果 。 #include<stdio.h> int fun(int s[],int t[]) { int i,j=0; for(i=0;i<10;i++) if(i%2) { t[j]=s[i]; j++; } return j; } int main() { int X[10]={1,2,3,4,5,6,7,8,9,10}; int Y[10]; int m,i; m=fun(X,Y); for(i=0;i<m;i++) printf("%d",Y[i]); printf("\n"); return 0; }
答案:【点击查看答案】
254、
写出程序的运行结果的第二行输出: 。 #include<stdio.h> int main() { int X[4][4]={{11,2,31,14},{5,16,7,4},{18,9,6,10},{17,1,3,12}}; int i,j,k,t; for(i=0;i<4;i++) for(j=0;j<4;j++) for(k=j+1;k<4;k++) { if (X[i][j]>X[i][k]) { t=X[i][j]; X[i][j]= X[i][k]; X[i][k]=t; } } for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%d",X[i][j]); printf("\n"); } return 0; }
答案:【点击查看答案】
255、
有以下C程序程序运行后的输出结果是 。 #include <stdio.h> #define N 20 void fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } int main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); return 0; }
答案:【点击查看答案】
256、
若有定义int a[3][5],则sizeof(a)的值是 。
答案:【点击查看答案】
257、
若有定义int a[3][5],则sizeof(a[0][0])的值是 。
答案:【点击查看答案】
258、
下列程序的输出结果是 。 #include<stdio.h> void fun(int p[]) { printf("%d\n",p[5]); } int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; fun(&a[3]); return 0; }
答案:【点击查看答案】
259、
算算是第几天?
答案:【点击查看答案】
260、
生成指定的数列
答案:【点击查看答案】
261、
求数组元素的平均值
答案:【点击查看答案】
262、
以下字符串定义错误的是___________。
A、char s[7]="Teacher";
B、char s[]="Teacher";
C、char s[10]={"Teacher"};
D、char s[10]="Teacher";
答案:【点击查看答案】
263、
C语言中的字符串就是字符数组。
答案:【点击查看答案】
264、
C语言中,字符串所占内存空间就是字符串有效字符的个数。
答案:【点击查看答案】
265、
strlen("a\012b\xab\\bcd\n")的值为
A、9
B、10
C、11
D、13
答案:【点击查看答案】
266、
下面判断字符串str1是否大于str2,正确的表达式是___________。
A、if(str1>str2)
B、if(strcmp(str1,str2))
C、if(strcmp(str1,str2)>0)
D、if(strcmp(str2,str1)>0)
答案:【点击查看答案】
267、
使用gets函数可以同时输入多个字符串
答案:【点击查看答案】
268、
采用printf函数输出字符串的格式符为%s。
答案:【点击查看答案】
269、
C语言中的strlen函数是用来统计字符串所占内存空间的大小。
答案:【点击查看答案】
270、
下列程序段运行后,i的正确结果为____________。 int i=0; char *s="a\041#041\\b"; while(*s++) i++;
A、5
B、8
C、11
D、12
答案:【点击查看答案】
271、
以下不能正确进行字符串初始化的语句是________________。
A、char str[]={"good!"};
B、char *str="good!";
C、char str[5]="good!";
D、char str[6]={'g','o','o','d','!','\0'}
答案:【点击查看答案】
272、
下面判断字符串s1是否大于s2,正确的表达式是___________。
A、if (s1>s2)
B、if (strcmp(s1,s2))
C、if (strcmp(s1,s2)>0)
D、if (strcmp(s2,s1)>0)
答案:【点击查看答案】
273、
strlen("b\013c\xac\\abc\n")的值为_____________________。
A、9
B、10
C、11
D、13
答案:【点击查看答案】
274、
假设已定义char a[10]; char *p; 下面的赋值语句中,正确的是____________________。
A、p=a;
B、a="abcdef";
C、*p="abcdef";
D、p=*a;
答案:【点击查看答案】
275、
假设已定义char ch[20],*str=ch; 下列哪条语句不正确_______________________。
A、str="teacher";
B、ch="teacher";
C、strcpy(ch, "teacher");
D、strcpy(str,"teacher");
答案:【点击查看答案】
276、
以下程序的输出结果为_______________。 #include <stdio.h> int main() { char b[]="Hello, you!"; b[5]=0; printf("%s\n",b); return 0; }
A、0
B、Hello0
C、Hello
D、Hello, you!
答案:【点击查看答案】
277、
下面程序段的运行结果是______________________。 #include <stdio.h> int main() { char s[]="123", t[]="abcd"; if(*s>*t) printf("%s\n",s); else printf("%s\n",t); return 0; }
A、123
B、程序有错
C、a
D、abcd
答案:【点击查看答案】
278、
下面字符串处理函数中哪一个需要两个参数?
A、strlen
B、strcpy
C、strupr
D、strlwr
答案:【点击查看答案】
279、
下面判断两个字符串是否相等的表达式正确的是_______________。
A、if (s1=s2)
B、if (s1==s2)
C、if (strcmp(s1,s2)==0)
D、if (strcmp(s1,s2))
答案:【点击查看答案】
280、
有程序段: char *p="abcdefghijklmnopq"; while (*p++!='e'); printf("%c\n",*p); 输出结果为_______________。
A、c
B、d
C、e
D、f
答案:【点击查看答案】
281、
函数调用strcat(strcpy(str1, str2), str3)的功能是___________。
A、将串str1复制到串str2中,然后再链接到str3之后
B、将串str1复制到串str2之后,然后再连接到str3之中
C、将串str2复制到串str1之中,然后再将str3连接到串str1之后
D、将串str2复制到串str1之中,然后再将str1连接到串str3之后
答案:【点击查看答案】
282、
已知char *str, **s=&str; 正确的语句是______________。
A、s=“computer”;
B、*s="computer";
C、**s="computer";
D、*s='A';
答案:【点击查看答案】
283、
已知char s[20]="programming", *ps=s; 则值不为字母o的表达式是____________。
A、ps+2
B、s[2]
C、ps[2]
D、ps+=2,*ps
答案:【点击查看答案】
284、
有以下语句,正确的描述是______________。 char x[ ]="12345"; char y[ ]={'1','2','3','4','5'};
A、x数组和y数组的长度相同
B、x数组的长度大于y数组的长度
C、x数组的长度小于y数组的长度
D、x数组等价于y数组
答案:【点击查看答案】
285、
C语言中,将两个字符串进行连接的函数为_____________(只写函数名即可)。
答案:【点击查看答案】
286、
strlen("ab\022\x12\\ab\a")的值为_______________。
答案:【点击查看答案】
287、
采用gets输入字符串并保存在字符数组s1中的C语句为___________________。
答案:【点击查看答案】
288、
有程序段: char s1[ ]="I Like Pizza!"; strupr(s1); puts(s1); 输出结果为____________________。
答案:【点击查看答案】
289、
假设char s1[ ]="Basic", s2[ ]="Base"; if (strcmp(s1,s2)) strcpy(s1, s2); 请问现在s1为______________。
答案:【点击查看答案】
290、
strlen("ab\045+045\'b")的值为_______________。
答案:【点击查看答案】
291、
判断两个字符串s1和s2是否相等,应该使用__________函数。
答案:【点击查看答案】
292、
十进制转换十六进制
答案:【点击查看答案】
293、
字符串过滤
答案:【点击查看答案】
294、
以下正确的叙述是________。
A、在程序的一行中可以出现多个有效的预处理命令行
B、使用带参宏时,参数的类型应与宏定义时一致
C、宏替换不占用运行时间,只占编译时间
D、宏定义不能出现在函数内部
答案:【点击查看答案】
295、
以下for语句构成的循环执行了________次。 #include<stdio.h> #define N 2 #define M N+1 #define NUM (M+1)*M/2 int main() { int i,n=0; for (i=1;i<=NUM;i++) { n++; printf("%d",n); } printf("\n"); return 0; }
答案:【点击查看答案】
296、
有以下程序 #include <stdio.h> #define PT 3.5 #define S(x) PT*x*x int main() { int a=1,b=2; printf("%4.1f\n",S(a+b)); return 0; } 程序运行后输出的结果是______________。
答案:【点击查看答案】
297、
有以下程序 #include <stdio.h> #define S(x) 4*(x)*x+1 int main() { int k=5,j=2; printf("%d\n",S(k+j)); return 0; } 程序运行后的输出结果是________。
答案:【点击查看答案】
298、
#include<stdio.h> static int x=5; void f1( ) { x+=1; printf("x2=%d\n",x); } void f2( ) { int x=1; printf("x3=%d\n",x); } int main( ) { auto int x=3; printf("x1=%d\n",x); f1( ); f2( ); printf("x4=%d\n",x); return 0; }
A、x1=3
B、x2=6
C、x3=1
D、x4=3
答案:【点击查看答案】
299、
该程序由file1.c和file2.c这两个文件组成。 //file1.c #include<stdio.h> int d = 1; void fun ( int *p ) { int d = 5; d+=(*p)++; printf("%d,",d); } //file2.c #include<stdio.h> extern void fun(int*); extern int d; int main ( ) { fun(&d); printf ( "%d", d ); return 0; }
答案:【点击查看答案】
300、
C语言编译系统对宏定义的处理 。
A、和其它C语句同时进行
B、在对C程序语句正式编译之前处理
C、在程序执行时进行
D、在程序链接时处理
答案:【点击查看答案】
301、
以下对宏替换的叙述,不正确的是 。
A、宏替换不占用运行时间
B、宏替换只是字符的替换
C、宏标识符无类型,其参数也无类型
D、宏替换时先求出实参表达式的值,然后代入形参运算求值
答案:【点击查看答案】
302、
以下不正确的叙述是 。
A、一个#include命令只能指定一个被包含头文件
B、头文件包含是可以嵌套的
C、#include命令可以指定多个被包含头文件
D、在#include命令中,文件名可以用双引号或尖括号括起来
答案:【点击查看答案】
303、
下列关于外部变量的说法,正确的是 。
A、全局外部变量可以用于多个模块,extern只是声明而不是重新定义
B、外部变量是在函数外定义的变量,其作用域是整个程序
C、全局外部变量可以用于多个模块,但需用extern重新在各模块中再定义一次
D、静态外部变量只能作用于本模块,因此它没有什么实用价值
答案:【点击查看答案】
304、
下列关于多文件工程程序的组织原则中,不正确的是 。
A、多文件工程程序中模块的数量越多越好
B、将不同的功能和数据结构划分到不同的模块中
C、将函数的声明和实现相分离
D、将函数的定义和使用相分离
答案:【点击查看答案】
305、
以下叙述中正确的是 。
A、预处理命令行必须位于C源程序的起始位置
B、在C语言中,预处理命令行都是以“#”开头
C、每个C源程序文件必须包含预处理命令行:#include <stdio.h>
D、C语言的预处理不能实现宏定义和条件编译功能
答案:【点击查看答案】
306、
关于编译预处理,下列说法正确的是 。
A、用户自定义头文件时使用条件编译指令可以避免重复包含
B、含有函数原型的头文件和函数的定义都可以出现在多个模块中
C、在#include<头文件名>格式中,编译预处理程序直接到当前目录查找头文件
D、在#include"头文件名"格式中,编译预处理程序最后到当前目录查找头文件
答案:【点击查看答案】
307、
宏定义#define G 9.8中的宏名G表示 。
A、一个双精度实数
B、一个单精度实数
C、一个字符串
D、不确定类型的数
答案:【点击查看答案】
308、
C 语言中,宏定义有效范围从定义处开始,到源文件结束处结束,但可以用________来提前解除宏定义的作用。
A、#endif
B、#ifdef
C、#undefine
D、#undef
答案:【点击查看答案】
309、
在一个C语言源程序文件中所定义的全局变量,其作用域为________。
A、所在文件的全部范围
B、所在程序的全部范围
C、所在函数的全部范围
D、由具体定义位置和extern 说明来决定范围
答案:【点击查看答案】
310、
对于以下宏定义: #define M 1+2 #define N 2*M+1 执行语句“x=N;”之后,x的值是 。
答案:【点击查看答案】
311、
对于以下宏定义: #define M(x) x*x #define N(x, y) M(x)+M(y) 执行语句z=N(2, 2+3);后,z的值是 。
答案:【点击查看答案】
312、
请写出下面程序的输出结果。 #include<stdio.h> int main ( ) { int x = 0, y = 1, z; z=2*x+y; #ifdef TEST printf ( "%d,%d," , x, y ); #endif printf ( "%d\n", z ); return 0; }
答案:【点击查看答案】
313、
#include<stdio.h> #define ADD(y) 3.54+y #define PR(a) printf("%d",(int)(a)) #define PR1(a) PR(a);putchar('\n') int main( ) { int i=4; PR1(ADD(5)*i ); return 0; }
答案:【点击查看答案】
314、
请写出下面程序的输出结果。 #include<stdio.h> #define MIN(x,y) (x)<(y)?(x):(y) int main( ) { int i ,j ,k; i=10; j=15; k=10*MIN(i,j); printf("%d",k); return 0; }
答案:【点击查看答案】
315、
带参宏替换计算给定年份的二月天数
答案:【点击查看答案】
316、
已有以下定义,则正确的表达式是______。 struct AA { int m,n; }aa;
A、AA.m = 10;
B、AA bb = { 10, 5 };
C、AA.aa.m = 10 ;
D、aa.m = 10;
答案:【点击查看答案】
317、
已有以下定义,则不正确的是______。 struct AA { int m ; char *n; } aa={10, "abc"},*p=&aa;
A、*p->n
B、p->n
C、*p.n
D、*aa.n
答案:【点击查看答案】
318、
对于一个结构体变量,系统分配的存储空间至少是所有成员存储空间的总和。
答案:【点击查看答案】
319、
用 typedef 可以定义新的数据类型。
答案:【点击查看答案】
320、
以下程序的运行结果是 。 #include<stdio.h> struct stu { int num; char name[10]; int age; }; void fun ( struct stu *p ) { printf ( "%s\n", p->name); } int main ( ) { struct stu students [3]={{101,"Sun",20},{102,"Wang",19}, {103,"Zhao",18}}; fun(students+2); return 0; }
答案:【点击查看答案】
321、
对于一个联合类型的变量,系统分配的存储空间是______。
A、第一个成员所需的存储空间
B、最后一个成员所需的存储空间
C、占用空间最大的成员所需的存储空间
D、所有成员存储空间的总和
答案:【点击查看答案】
322、
使用共用体union的目的是______。
A、将一组具有相同类型的数据作为一个整体,便于其中的成员共享同一存储空间
B、将一组相关数据作为一个整体,以便程序中使用
C、将一组具有相同数据类型的数据作为一个整体,以便程序中使用
D、将一组数据作为一个整体,以便于其中的成员共享同一存储空间
答案:【点击查看答案】
323、
以下枚举类型定义正确的是______。
A、enum color={red,yellow,blue};
B、enum color {red,yellow,blue};
C、enum color {“red”, “yellow”, “blue”};
D、enum Odd={1,3,5,7,9};
答案:【点击查看答案】
324、
若有枚举类型定义: enum color {red, orange=3, yellow, green, blue}, 则green的值为______。
答案:【点击查看答案】
325、
假定已建立以下链表结构,且指针p 和q 已指向如图所示的结点: 则以下选项中可将q 所指结点从链表中删除并释放该结点的语句组是 。
A、(*p).next=(*q).next; free(p);
B、p=q->next; free(q);
C、p->next=q->next;
D、p->next=q->next; free(q);
答案:【点击查看答案】
326、
以下程序的输出结果是 。 #include<stdio.h> int main() { struct node {int n; struct node *next;} *p; struct node x[3]={{2,x+1},{4,x+2},{6,NULL}}; p=x; printf("%d,",p->n); printf("%d\n",p->next->n); return 0; }
A、2,3
B、2,4
C、3,4
D、4,6
答案:【点击查看答案】
327、
以下各选项旨在为一个已有类型重命名一种新的类型名,其中正确的是 。
A、typedef v1 int;
B、typedef v2=int;
C、typedef int v3;
D、typedef v4:
答案:【点击查看答案】
328、
若有以下结构体定义: struct exam { int x,y; }v1; 则 是正确的引用或定义。
A、exam.x=10;
B、exam v2; v2.x=10;
C、struct v2; v2.x=10;
D、struct exam v2={10};
答案:【点击查看答案】
329、
在如下结构体定义中,不正确的是 。
A、struct student { long no; double score; };
B、struct stud[20] { long no; double score; };
C、struct student { long no; double score; }stud[20];
D、struct { long no; double score; } stud[100];
答案:【点击查看答案】
330、
struct date { int year,month,day; }; struct worklist { char sex; struct date birthday; }person; 对结构体变量 person 的出生年份进行赋值时,下面正确的赋值语句是 。
A、year=2014
B、birthday.year=2014
C、person.birthday.year=2014
D、person.year=2014
答案:【点击查看答案】
331、
设有如下定义: struct sk { int a; float b; }data,*p; 若有p=&data;,则对data中的a域的正确引用是 。
A、(*p).data.a
B、(*p).a
C、p->data.a
D、p.data.a
答案:【点击查看答案】
332、
以下选项中,能定义s为合法的结构体变量的是 。
A、typedef struct abc { double a ; char b[10]; }s;
B、struct { double a ; char b[10]; }s;
C、struct ABC { double a ; char b[10]; } ; ABC s;
D、typedef struct ABC { double a ; char b[10]; } ; ABC s;
答案:【点击查看答案】
333、
有以下程序的运行结果是________。 #include <stdio.h> struct ord { int x,y; } dt[2]={1,2,3,4}; int main() { struct ord *p=dt; printf("%d,",++p->x); printf("%d\n",++p->y); return 0; }
A、1,2
B、2,3
C、3,4
D、4,1
答案:【点击查看答案】
334、
有以下程序的运行结果是________。 #include <stdio.h> struct st { int x, y;} data[2]={1,10,2,20}; int main() { struct st *p=data; printf("%d,", p->y); printf("%d\n",(++p)->x); return 0; }
A、10,1
B、20,1
C、10,2
D、20,2
答案:【点击查看答案】
335、
有以下结构体说明、变量定义和赋值语句 struct STD { char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是________。
A、scanf("%s",s[0].name);
B、scanf("%d",&s[0].age);
C、scanf("%c",&(ps->sex));
D、scanf("%d",ps->age);
答案:【点击查看答案】
336、
下面程序的输出结果是 。 #include<stdio.h> struct stru { int x; char c; }; void func(struct stru b) { b.x=20; b.c='y'; } int main() { struct stru a={10,'x'}; func(a); printf("%d,%c\n",a.x,a.c); return 0; }
A、20,x
B、20,y
C、10,x
D、10,y
答案:【点击查看答案】
337、
设有以下说明语句: struct ex { int x ; float y; char z ; }example; 则下面的叙述中不正确的是 。
A、struct是结构体类型的关键字
B、example是结构体类型名
C、x,y,z都是结构体成员名
D、struct ex是结构体类型名
答案:【点击查看答案】
338、
以下关于 typedef 的叙述不正确的是 。
A、用 typedef 可以定义各种类型名,但不能用来定义变量
B、用 typedef 可以增加新类型
C、用 typedef 只是将已存在的类型用一个新的名称来代表
D、使用 typedef 可提高程序的通用性
答案:【点击查看答案】
339、
对于一个结构体变量,系统分配的存储空间至少是______。
A、第一个成员所需的存储空间
B、最后一个成员所需的存储空间
C、占用空间最大的成员所需的存储空间
D、所有成员存储空间的总和
答案:【点击查看答案】
340、
以下定义不正确的是______。
A、struct AA { int m,n; };
B、struct AA { int m,n; }aa;
C、struct { int m,n; };
D、struct { int m,n; }aa;
答案:【点击查看答案】
341、
下面程序的输出结果是 。 #include<stdio.h> struct stru { int x; char c; }; void func(struct stru *b) { b->x=20; b->c='y'; } int main() { struct stru a={10,'x'},*p=&a; func(p); printf("%d,%c\n",a.x,a.c); return 0; }
A、10,x
B、10,y
C、20,x
D、20,y
答案:【点击查看答案】
342、
有结构体定义如下。 struct person { int ID; char name [ 20 ]; struct { int year, month, day; } birthday; } Tom; 将Tom中的day赋值为26的语句为______。(语句最后的分号也必须写上)
答案:【点击查看答案】
343、
已有定义“struct { int m, n; } arr[2] = { { 11, 22 }, { 33, 44 } }, *ptr = arr;”,则表达式++ptr->m的值为______。
答案:【点击查看答案】
344、
已有定义“struct { int m, n; } arr[2] = { { 11, 22 }, { 33, 44 } }, *ptr = arr;”,则表达式(++ptr)->m的值为______。
答案:【点击查看答案】
345、
已知教师记录描述为 struct teather { int id; struct { int y; int m; int d; } birth; }t; 将变量t中的d成员赋值为12的语句为 。(语句最后的分号也要写)
答案:【点击查看答案】
346、
设有以下结构类型说明和变量定义: struct stud { long id[2]; double ave; } a, *p; 则变量a在内存所占字节数是 。
答案:【点击查看答案】
347、
有如下定义: struct { int x; char *y; }sa[2]={{1,"ab"},{2,"cd"}},*p=sa; 则:表达式 ++p->x 的值是 。
答案:【点击查看答案】
348、
有如下定义: struct { int x; char *y; }sa[2]={{1,"ab"},{2,"cd"}},*p=sa; 则:表达式 (p+1)->x 的值是 。
答案:【点击查看答案】
349、
有如下定义: struct { int x; char *y; }sa[2]={{1,"ab"},{2,"cd"}},*p=sa; 则:语句:printf("%s",(++p)->y); 的输出是 。
答案:【点击查看答案】
350、
学生平均成绩计算和输出
答案:【点击查看答案】
351、
数据-12.34在文本文件中占用的字节数是________。
A、4
B、5
C、6
D、8
答案:【点击查看答案】
352、
根据数据的组成形式,C语言将文件分为两种:文本文件和 。
答案:【点击查看答案】
353、
语句FILE *fp; 中,变量fp的含义是: 。
答案:【点击查看答案】
354、
若要打开指定的c盘子目录B130104下二进制文件test.dat文件,在调用函数fopen时,第一个参数的正确格式是________。
A、"c: B130104\test.dat"
B、"c:\ B130104\\test.dat"
C、"c:\\ B130104\\test.dat"
D、"c:\ B130104\test.dat"
答案:【点击查看答案】
355、
当已存在一个 abc.txt 文件时,执行函数 fopen("abc.txt","r+") 的功能是________。
A、打开 abc.txt 文件,清除原有的内容
B、打开 abc.txt 文件,只能读取原内容
C、打开 abc.txt 文件,只能写入新内容
D、打开 abc.txt 文件,可以读取和写入新的内容
答案:【点击查看答案】
356、
当顺利执行了文件关闭操作时,fclose函数的返回值是________。
A、-1
B、TRUE
C、0
D、1
答案:【点击查看答案】
357、
fread(buf,64,2,fp)的功能是________。
A、从fp文件流中读出整数 64 ,并存放在 buf 中
B、从fp文件流中读出整数 64 和 2 ,并存放在 buf 中
C、从fp文件流中读出 64 个字节的字符,并存放在 buf 中
D、从fp文件流中读出 2 个 64 个字节的字符,并存放在 buf 中 ;
答案:【点击查看答案】
358、
若有以下定义和说明: #include<stdio.h> struct std { char num[6]; char name[8]; float mark[4]; }a[30]; FILE *fp; 则以下不能将文件内容读入数组a中的语句组是________。
A、for(i=0; i<30; i++) fread(&a[i],sizeof(struct std ),1,fp);
B、for(i=0; i<30; i++,i++) fread(&a[i],sizeof(struct std ),2,fp);
C、fread(a,sizeof(struct std ),30,fp);
D、for(i=0; i<30; i++) fread(a[i], sizeof(struct std ), 1L, fp);
答案:【点击查看答案】
359、
以下叙述中错误的是________。
A、gets函数用于从终端读入字符串
B、getchar函数用于从磁盘文件读入字符
C、fputs函数用于把字符串输出到文件
D、fwrite函数用于以二进制形式输出数据到文件
答案:【点击查看答案】
360、
函数rewind的作用是________。
A、使位置指针重新返回文件的开头
B、使位置指针指向文件中所要求的特定位置
C、使位置指针值向文件的尾部
D、使位置指针自动移向下一个字符的位置
答案:【点击查看答案】
361、
以下不能将文件位置指针重新移动到文件开头位置的函数是________。
A、rewind(fp);
B、fseek(fp,0,0);
C、fseek(fp,-(long)ftell(fp),1);
D、fseek(fp,0,2);
答案:【点击查看答案】
362、
函数ftell(fp)的作用是________。
A、得到流式文件中的当前位置
B、移动流式文件的位置指针
C、初始化流式文件的位置指针
D、以上说法均正确
答案:【点击查看答案】
363、
有以下程序的输出结果是________。 #include <stdio.h> int main() { FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb+"); for(i=0;i<4;i++) fwrite(&ch[i],1,1,fp); fseek(fp,-2L,SEEK_END); fread(&t,1,1,fp); fclose(fp); printf("%c\n",t); return 0; }
答案:【点击查看答案】
364、
关于文件,下列说法中正确的是 。
A、C语言中,根据数据的存放形式,文件可分为文本文件和二进制文件
B、C语言只能读写二进制文件
C、C语言中的文件由记录序列组成
D、C语言只能读写文本文件
答案:【点击查看答案】
365、
如果要对E盘myfile目录下的文本文件abc.txt进行读、写操作,文件打开方式应为 。
A、fopen( "e:\\myfile\\abc.txt", "wb" );
B、fopen( "e:\\myfile\\abc.txt", "r+" );
C、fopen( "e:\myfile\abc.txt", "r" );
D、fopen( "e:\\myfile\\abc.txt", "rb" );
答案:【点击查看答案】
366、
对“fread( arr, 36, 3, fp )”解释正确的是 。
A、从fp中读出整数36,并存放至 arr 中
B、从fp中读出整数36和3,并存放至 arr 中
C、从fp中读出36个字节的内容,并存放至 arr 中
D、从fp中读出3个36 个字节的内容,并存放至 arr 中
答案:【点击查看答案】
367、
以下选项中,不能将文件位置指针移到文件开头的是 。
A、rewind( fp );
B、fseek( fp, 0, 0 );
C、fseek( fp, -ftell(fp), SEEK_CUR );
D、fseek( fp, 0, SEEK_CUR, );
答案:【点击查看答案】
368、
若要用fopen函数打开一个已存在的文本文件,向该文件尾部增加数据,则文件打开方式应是________。
A、"w"
B、"r"
C、"ab+"
D、"a"
答案:【点击查看答案】
369、
设fp是指向某个文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是________。
A、EOF
B、-1
C、非零值
D、NULL
答案:【点击查看答案】
370、
fopen( ) 函数的 mode 取值 "r" 和 "w" 时,它们之间的差别是________。
A、"r" 可向文件写入 ,"w" 不可向文件写入。
B、"r" 不可向文件写入 ,"w" 可向文件写入。
C、"r" 不可由文件读出 , "w" 可由文件读出。
D、文件不存在时, "r" 建立文件, "w" 出错。
答案:【点击查看答案】
371、
已知函数调用的形式:fread(buffer,size,count fp);其中buffer代表是________。
A、一个整型变量,代表要读入的数据项总数
B、一个文件指针,指向要读入的文件
C、一个指针,指向要存放读入数据的地址
D、一个存储区,存放读入数据的地址
答案:【点击查看答案】
372、
以下叙述中错误的是________。
A、gets函数用于从终端读入字符串
B、getchar函数用于从磁盘文件读入字符
C、fputs函数用于把字符串输出到文件
D、fwrite函数用于以二进制形式输出数据到文件
答案:【点击查看答案】
373、
函数rewind的作用是________。
A、使位置指针重新返回文件的开头
B、使位置指针指向文件中所要求的特定位置
C、使位置指针值向文件的尾部
D、使位置指针自动移向下一个字符的位置
答案:【点击查看答案】
374、
当已存在一个abc.txt文件时,执行函数fopen("abc.txt","r+")的功能是 。
A、打开abc.txt文件,清除原有的内容
B、打开abc.txt文件,只能读取原内容
C、打开abc.txt文件,只能写入新内容
D、打开abc.txt文件,可以读取原内容和写入新内容
答案:【点击查看答案】
375、
fopen()函数第2个参数取值为“w+“和”a+”时都可以写入数据,它们之间的差别是 。
A、取“w+”时可在中间插入数据,而取“a+”时只能在末尾追加数据
B、取“w+”时和“a+”时都只能在末尾追加数据
C、在文件存在时,去“w+”时清除原文件数据,而取“a+”时保留原文件数据
D、去“w+”时不能在中间插入数据,而取“a+”时只能在末尾追加数据
答案:【点击查看答案】
376、
若要用fopen函数打开一个新的二进制文件,该文件要既能读又能写,则文件使用方式应是 。
A、“w+”
B、“rb+”
C、“wb+”
D、“ab”
答案:【点击查看答案】
377、
以下叙述中正确的是 。
A、C语言中的文是流式文件,因此只能顺序存取数据
B、打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C、当一个程序中当对文件进行了写操作后,必须先关闭改文件然后再打开,才能读到第1个数据
D、当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
答案:【点击查看答案】
378、
为了向二进制文件尾部增加数据,打开文件的方式应采用 。
A、“ab”
B、“rb+”
C、"wb"
D、"wb+"
答案:【点击查看答案】
379、
如果abc.txt文件的内容为:2*3=6and40*8is40! 下面程序运行后,abc.txt文件的内容变成 #include<stdio.h> #include<stdlib.h> int main( ) { FILE *fp; fp=fopen("abc.txt","r+"); while(!feof(fp)) if(fgetc(fp)=='*') { fseek(fp,-1,1); fputc('$',fp); fflush(fp); } fclose(fp); return 0; }
答案:【点击查看答案】
380、
请写出下面程序的输出结果 。 #include<stdio.h> #include<stdlib.h> int main() { int i,n; FILE *fp; if((fp=fopen("temp","w+"))==NULL) { printf("不能建立temp文件\n"); exit(0); } for(i=1;i<=10;i++) fprintf(fp, "%3d",i); for(i=0;i<10;i++) { fseek(fp, i* 3L ,SEEK_SET); fscanf(fp, "%d",&n); fseek(fp, i* 3L ,0); fprintf(fp, "%3d",n+10); } for(i=0;i<5;i++) { fseek(fp, i* 6L ,0); fscanf(fp, "%d",&n); printf("%d,",n); } fclose(fp); return 0; }
答案:【点击查看答案】
381、
请写出下面程序运行后文件abc.dat中的内容 。 #include <stdio.h> int main() { FILE *pf; char *s1="China",*s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf); fwrite(s1,5,1,pf); fclose(pf); return 0; }
答案:【点击查看答案】
382、
以下程序运行后的输出结果的第二行是 。 #include<stdio.h> int main() { FILE *fp; int k,n,i,a[6]={10,20,30,40,50,60}; fp=fopen("d2.txt","w"); for(i=0;i<6;i++) fprintf(fp,"%d,%d\n",i,a[i]); fclose(fp); fp=fopen("d2.txt","r"); for(i=0;i<3;i++) { fscanf(fp,"%d,%d",&k,&n); printf("%d,%d\n",k,n); } fclose(fp); return 0; }
答案:【点击查看答案】
383、
已存在文件file.txt,其内容为sample1234ASDw,请写出程序的运行结果 。 #include<stdio.h> #include<stdlib.h> int main( ) { FILE *fp; char ch; int count=0; fp = fopen( "file.txt", "r" ); if ( fp == 0 ) { printf( "file error\n" ); exit(1); } ch = fgetc(fp); while( !feof( fp ) ) { if ( ch >= 'a' && ch <= 'z') count++; ch = fgetc(fp); } printf( "%d\n", count); fclose( fp ); return 0; }
答案:【点击查看答案】
关于C语言标识符作用域的说法 正确的是,C语言程序设计-中国大学mooc-汤文兵相关推荐
- 关于C语言标识符作用域的说法 正确的是,郑州大学远程教育-网教《C语言程序设计》在线测试2 满分代做QQ805006590...
第一题.单项选择题(每题1分,5道题共5分) 1.在C语言中,不正确的常量是: A.0xf6 B.0876 C..5e-6 D.+3e+2 2.要把高级语言编写的源程序转换为目标程序,需要使用: A. ...
- c语言只需编译 不需连接,C语言程序设计-中国大学mooc
C语言程序设计-中国大学mooc http://carrottt.blog.bokee.net 2020-6-9 转载自网课答案 (www.daanplus.com) : 完整答案请关注公众号[ ...
- python正确的输入语句为_中国大学MOOC: 在 Python 中,正确的输入语句为【 】。
摘要: 中国Pn中正尔雅女生最新免费技巧答案查询穿搭超星.输入新媒性别体与知到章节作业期末答案答案社会.语句话训智慧普通节测练与答案测试树章试题.... 中国Pn中正尔雅女生最新免费技巧答案查询穿搭超 ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(四)(Python语言基础(2))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ...
- python语言程序设计慕课_中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案...
中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案 更多相关问题 智慧职教: 反应级数的绝对值不会超过3,可以是正整数或者负整数,不能是分数. 在铆接过程中,铆孔的质量直接影响铆接质量 ...
- 中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周)
中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周) Lan 2020-05-03 14:21 369 人阅读 0 条评论 感谢中国大学MOOC提供的学习平台 ...
- python语言能够跨平台使用吗_中国大学MOOC: Python语言能够跨平台使用。
中国大学MOOC: Python语言能够跨平台使用. 答:对 自我评价是自我意识的主要组成部分,在人的个性发展中发挥着重要作用.其特点有() 答:A.自我评价的自觉性提高 B.自我评价的主动性提高 C ...
- python语言使用不需要付费不存在商业风险_中国大学MOOC慕课_Python语言基础与应用_答案...
中国大学MOOC慕课_Python语言基础与应用_答案 答案: 更多相关问题 下列不属于不得再次公开发行公司债券的情形是(). A.对于公司前一次公开发行的公司债券尚未募足B 从生物电的角度而言,细胞 ...
- python能在哪些系统上运行_中国大学MOOC:Python语言可以在哪些操作系统下运行______。...
中国大学MOOC:Python语言可以在哪些操作系统下运行______. 正常人一出生其颈部有()条横向皱纹,属于正常生理现象.A:1--3B:5--6C:4--5D:3--4 在Al海区实现船对岸遇 ...
最新文章
- 一个小小的AI训练营竟然卧虎藏龙
- 通过Spark listener实现Direct模式读取Kafaka数据
- ruby的module与Java的interface以及C++的friend
- 改:今天看到的一个有趣面试题:return *this和return this有什么区别?
- 产品问答 | 3-5年的PM,如何提升竞争力?
- php 整数转换为32 位,PHP哈希函数返回一个整数(32位int)(PHP hashing function that returns an integer (32bit int))...
- Android 4.0操作系统的20个使用小技巧
- C语言基础知识----注意事项
- 递归 遍历目录下的所有文件
- Fushsia:一次对操作系统的重构
- 微信小程序模板平台_小程序模板免费使用_小程序界面模板
- Azkaban的安装部署
- 文本聚类python fcm_模糊C均值聚类-FCM算法
- linux查看日志相关命令
- Hibernate中Entity对象的重新加载refresh
- 安卓开发实现悬浮窗显示(全局显示),通过悬浮窗实时监控当前流量
- POODLE SSLv3 安全漏洞 (CVE-2014-3566)
- 颈椎护理小助手,轻松缓解颈部酸痛,宾多康智能颈枕按摩器体验
- 四种方法解决:Windows10下使用SVN文件夹不显示小绿勾
- PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统因为在此系统上禁止运行脚本。
热门文章
- 黑客与画家:用户老板
- 热烈祝贺GFC东南亚区块链技术峰会圆满成功
- JavaScript之form表单提交前验证的onSubmit事件
- POPPER 的设计和优化
- linux文件权限s设置,Linux权限位(含特殊权限位s s t) 及chown\chmod命令使用
- Unexpected Exception caught setting ‘xx‘ on ‘xxx‘
- 高压MOS管1000V/2A 可代替IXFP4N100 数据表(PDF)
- 10分钟了解关键路径及如何求得关键路径
- Optional int parameter ‘page‘ is present but cannot be translated into a null value due to being dec
- 雅俗共赏-许嵩(杂言)