电子科大10秋学期《C语言》在线作业答案(一,二,三)

更新时间:2024-03-06 09:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子科大10秋学期《C语言》在线作业一 试卷总分:100 测试时间:--

一、单选题(共 35 道试题,共 70 分。)

V

1. C语言中用于循环结构程序设计的三种常用控制语句是( C ) A. if、for、continue B. if、switch、break

C. for、while、do-while

D. 顺序结构、选择结构、循环结构 满分:2 分

2. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是( A ) A. a[1][2] B. a[1]

C. *(p+1*10+2) D. *(a[1]+2)

满分:2 分

3. 若有以下定义,则对a数组元素的正确引用是( C) int a[5],*p=a; A. *&a[5] B. a+2 C. *(p+5)

D. *(a+2)

满分:2 分

4. 判断字符串a和b是否相等,应当使用( A ) A. if(a= =b) B. if(a=b)

C. if(strcpy(a,b)) D. if(!strcmp(a,b)) 满分:2 分

5. 若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为( A) A. *(a[i]+j) B. (a+i) C. *(a+j)

D. a[i]+j

满分:2 分

6. 以下不正确的if语句形式是( C) A. if(x>y && x!=y); B. if(x= =y) x+=y;

C. if(x != y) scanf(\D. if(x

7. 以下对一维整型数组a的正确说明是( D) A. int a(10)

B. int n=10,a[n];

C. int n;scanf(\

D. #define SIZE 10 int a[SIZE]; 满分:2 分

8. 下述关于条件语句的描述中错误的是(C ) A. if语句中只有一个else子句

B. if语句中可以有多个else if 子句 C. if语句中if体内不能有switch语句 D. if语句的if体中可以是循环语句 满分:2 分

9. 语句while(!E)中的表达式!E等价于(A ) A. E==0 B. E!=1 C. E!=0

D. E==1

满分:2 分

10. 下面程序的运行结果是( D) #include \ main() {int i; for(i=1;i<=5;i++) {

if (i%2) printf(\ else continue; printf(\ }

printf(\ }

A. *#*#$ B. #*#*#*$ C. *#*#$ D. #*#*$

满分:2 分 11. 对宏命令的处理是( B) A. 在程序执行时进行

B. 在程序对其它语句进行编译前进行 C. 在程序连接时进行

D. 与程序中其它语句同时进行编译 满分:2 分

12. 一个C程序的执行是从( A)

A. 本程序的main函数开始,到main函数结束

B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本程序文件的第一个函数开始,到本程序main函数结束

满分:2 分

13. 若有以下说明和语句: struct student {int age; int num; }std,* p;则以下对结构体变量std中成员age的引用方式不正确的是( D)

p=&std; A. std.age B. p->age C. (*p).age D. *p.age

满分:2 分

14. 以下叙述中不正确的是(D )

A. 在不同的函数中可以使用相同的名字的变量 B. 函数中的形式参数是局部变量

C. 在一个函数内定义的变量只在本函数范围内有效

D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 满分:2 分

15. 以下不正确的说法是(C )

A. register变量可以提高变量使用的执行效率

B. register变量由于使用的是CPU的寄存器,其数目是有限制的 C. extern变量定义的存储空间按变量类型分配

D. 全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求 满分:2 分

16. putchar函数可以向终端输出一个( D) A. 整型变量表达式值 B. 实型变量值 C. 字符串

D. 字符或字符型变量值 满分:2 分

17. 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为(C ) A. char

18. 下面程序段的循环次数是(B ) int k=2;

while(k==0) printf(″%d″,k); k--;

printf(″\\n″); A. 0次 B. 1次 C. 2次

D. 无限次

满分:2 分

19. 若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是( C) A. *p+6 B. *(p+6) C. *(p+5) D. p+5

满分:2 分 20. 以下程序段 x= -1;

do {x=x*x;} while(!x); 则( C)

A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 满分:2 分

21. 结构化程序设计所规定的三种基本结构是(C ) A. 主程序、子程序、函数 B. 树形、网形、环形 C. 顺序、选择、循环 D. 输入、处理、输出

满分:2 分

22. C语言结构体类型变量在程序执行期间(A ) A. 所有成员一直驻留在内存中 B. 只有一个成员驻留在内存中 C. 部分成员驻留在内存中

D. 没有成员驻留在内存中 满分:2 分

23. 若调用一个函数,且此函数中没有return语句,则正确的说法是(D ) A. 该函数没有返回值

B. 该函数返回若干个系统默认值 C. 能返回一个用户所希望的函数值 D. 返回一个不确定的值 满分:2 分 24. 设有程序段

int k=10;

while (k=0) k= k-1;

则下面描述中正确的是(C ) A. while循环执行10次 B. 循环是无限循环

C. 循环体语句一次也不执行 D. 循环体语句执行一次

满分:2 分

25. 当说明一个结构体变量时系统分配给它的内存是( A) A. 各成员所需内存量的总和 B. 结构中第一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 结构中最后一个成员所需内存量 满分:2 分

26. 已知各变量的类型说明如下: int i=8,k,a,b;

unsigned long w=5; double x=1.42,y=5.2;

则以下符合C语言语法的表达式是( A) A. a+=a-=(b= 4)*(a=3) B. a=a*3=2 C. x%(-3) D. y=f1oat(i)

满分:2 分

27. 下面四个选项中,均是不合法的浮点数的选项是( ) A. 160 0.12 e3 B. 123 2e4.2 .e5 C. -.18 123e4 0.0 D. -e3 .234 1e3

满分:2 分

28. 在访问一个结构元素前你必须定义(C ) A. 结构体 B. 结构体变量 C. 定义结构指针 D. A和B

满分:2 分

29. 以下对二维数组a的正确说明是(C ) A. int a[3][]; B. float a(3,4);

C. double a[1][4]; D. float a(3)(4)

满分:2 分

30. enum color{red,green,yellow=5,white,black}定义了一枚举类型。编译程序为值表中各标识符分配的枚举值依次为( C) A. 1、2、3、4、5 B. 0、1、5、2、3 C. 0、1、5、6、7 D. 3、4、5、6、7

满分:2 分

31. 有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include void f(char *p[],int n) { char *t; int i,j;

for(i=0; i0)

{

t = p[i]; p[i]=p[j]; p[j] =t; } } main( )

{ char *p[5] ={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”} f(p,5);??

printf(“%d\\n”,strlen(p[1]));?? }

程序运行后的输出结果是( D)?? A. 2 B. 3

C. 6 D. 4

满分:2 分

32. x,i,j和k都是int型变量,则执行下面表达式后x的值为(C ) x=(i=4,j=16,k=32) A. 4 B. 16 C. 32

D. 52

满分:2 分

33. 下面程序段的运行结果是 ( C) char c[5]={'a','b','\\0','c','\\0'}; printf(\A. ?a??b?

B. ab C. ab c

D. ab□(其中□表示空格)

满分:2 分

34. 以下不正确的定义语句是( B) A. double x[5]={2.0,4.0,6.0,8.0,10.0}; B. int y[5]={0,1,3,5,7,9}; C. char c1[]={?1?,?2?,?3?,?4?,?5?}; D. char c2[]=}{'\\x10','\\xa','\\x8'}; 满分:2 分

35. 以下正确的描述是( B)

A. continue语句的作用是结束整个循环的执行

B. 只能在循环体内和switch语句体内使用break语句 C. 在循环体内使用break语句或continue语句的作用相同 D. 从多层循环嵌套中退出时, 只能使用goto语句 满分:2 分

二、多选题(共 5 道试题,共 10 分。)

V

1. 以下关于C源程序文件的说法中正确的是( BD) A. 是一种二进制文件

B. 是一种文本(ASCII码)文件

C. 可以用DOS的type命令显示其内容 D. 文件扩展名一般为c 满分:2 分

2. 以下数据类型在内存中占用4个字节的是( BC) A. int

B. unsigned long

C. float

D. unsigned char 满分:2 分

3. 定义char s[81]; 后,能正确输入一个字符串到数组s的语句是(ACD ) A. gets(s);

B. scanf (”%c”,s); C. scanf (”%s”,&s[0]); D. gets(&s[0]);

满分:2 分

4. 以下程序正确计算p=n! (n>=0)的是(AB) A. for(p=1.0,k=1;k<=n;) p*=k++; B. p=1.0;k=0;while(k

C. p=1.0;k=1;do{++k;p*=k;} while(k<=n); D. p=1.0;for(k=n;k>=1;k--) p*=k--; 满分:2 分

5. 下面关于C语言的说法错误的是( ABC) A. C函数必须有形式参数

B. 任何复合语句体的{ }中允许定义局部变量 C. 局部变量都存储在动态存贮区

D. C程序的执行起点只能是main函数 满分:2 分

三、判断题(共 10 道试题,共 20 分。) V

1. 已知int a[4],*p;则语句p=&a;是正确的。B A. 错误 B. 正确

满分:2 分

2. 条件运算符“?:”的优先级高于赋值运算符。B A. 错误 B. 正确

满分:2 分

3. 宏替换就是字符替换,不能进行任何计算。B A. 错误

B. 正确

满分:2 分

4. C程序是由函数构成的,每一个函数完成相对独立的功能。B A. 错误 B. 正确

满分:2 分

5. 结构体类型的数据是由不同类型的数据组合而成的。B A. 错误 B. 正确

满分:2 分

6. 用C语言可直接进行位运算和取地址等运算,因此C语言是一种低级语言。A A. 错误

B. 正确

满分:2 分

7. 以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关。A A. 错误 B. 正确

满分:2 分

8. 下面的程序段构成死循环。 a=5; while (1) {a--; if (a<0) break ; } A A. 错误

B. 正确

满分:2 分

9. 在内存中存储结构体类型的变量要占连续一段的存储单元。B A. 错误

B. 正确

满分:2 分

10. 以数组名作函数参数时,数据传递的方向是“双向的”,因此我们可以说,在此情况下,函数带回的返回值可能不止一个。A A. 错误

B. 正确

满分:2 分

电子科大10秋学期《C语言》在线作业二

试卷总分:100 测试时间:-- 一、单选题(共 35 道试题,共 70 分。)

V

1. 已有函数max(a,b)为了让函数指针变量p指向函数max正是确的赋值方法是( A) A. p=max; B. *p=max; C. p=max(a,b); D. *p=max(a,b); 满分:2 分 2. 以下不正确的说法是(D )

A. 全局变量,静态变量的初值是在编译时指定的 B. 静态变量如果没有指定初值,则其初值为0

C. 动态变量如果没有指定初值,则其初值不确定

D. 函数中的静态变量在函数每次调用时,都会重新设置初值 满分:2 分

3. 以下叙述正确的是( C)

A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句

D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 满分:2 分

4. 以下程序有语法错误,有关错误原因的正确说法是 ( C) main() {

int G=5,k; void prt_char(); ...

k=prt_char(G); ... }

A. 语句void prt_char( );有错,它是函数调用语句,不能用void说明 B. 变量名不能使用大写字母

C. 函数说明和函数调用语句之间有矛盾 D. 函数名不能使用下划线

满分:2 分

5. 若有以下的定义、说明和语句,则值为101的表达式是( C) struct cw { int a; int *b; }*p; int x0[]={11,12},x1[]={31,32};

static struct cw x[2]={100,x0,300,x1}; p=x;

A. *p->b B. p->a C. ++(p->a)

D. (p++)->a

满分:2 分

6. 下面程序的输出是( D) main() {

char x=040;

printf(\}

A. 100 B. 160

C. 120 D. 64

满分:2 分

7. 若使用一维数组名作函数实参,则以下正确的说法是( A) A. 必须在主调函数中说明此数组的大小 B. 实参数组类型与形参数组类型可以不匹配 C. 在被调函数中,不需要考虑形参数组的大小 D. 实参数组名与形参数组名必须一致 满分:2 分

8. 以下关于枚举的叙述不正确的是( C)

A. 枚举变量只能取对应枚举类型的枚举元素表中元素 B. 可以在定义枚举类型时对枚举元素进行初始化 C. 枚举元素表中的元素有先后次序,可以进行比较 D. 枚举元素的值可以是整数或字符串 满分:2 分

9. 已知一个函数的定义如下:double fun(int x, double y) { …… } 则该函数正确的函数原型声明为( C)

A. double fun (int x,double y) B. fun (int x,double y)

C. double fun (int ,double ); D. fun(x,y) ;

满分:2 分

10. 下面程序的运行结果是( D) #include main() { int x,i;

for(i=1;i<=100;i++)

{x=i;if(++x%2==0) if(++x%3==0) if(++x%7==0) printf(\ } A. 39 81 B. 42 84 C. 26 68 D. 28 70

满分:2 分

11. 下面四个选项中、均是正确的数值常量或字符常量的选项是( D) A. 0.0 0f 8.9e '&' B. \C. '3' 011 0xFFOO 0a D. +001 0xabcd 2e2 50. 满分:2 分

12. 以下程序的输出结果是( C) main()

{int a=100,x =10,y=20,okl=5,ok2=0; if (x

B. 0 C. -1

D. 值不确定

满分:2 分

13. 若有说明: char *language[ ]={\\VA\则language[2]的值是( A) A. 一个字符 B. 一个地址 C. 一个字符串

D. 一个不定值

满分:2 分

14. 以下正确的说法是( C)

A. 用户若需调用标准库函数,调用前必须重新定义

B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统根本不允许用户重新定义标准库函数

D. 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件 满分:2 分

15. 下面程序的运行结果是( B)

#include { int k=0; char c='A'; do {switch(c++) {case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3;} k++;} while(c<'G') A. k=3 B. k=4 C. k=2

D. k=0

满分:2 分

16. 下面程序的运行结果是 ( C) main() {int a[6],i; for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5; printf(\A. —40404 B. —40403 C. 一40443 D. 一40440

满分:2 分

17. 变量的指针,其含义是指该变量的 ( B) A. 值 B. 地址 C. 名

D. 一个标志

满分:2 分

18. 下面程序的输出是( D)

typedef union {long x; int y; char z; }MYTYPE; MYTYPE them; main() {printf(\A. 32 B. 16

C. 8 D. 4

满分:2 分

19. 若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为( B) A. 7 B. 8 C. 9

D. 10

满分:2 分

20. 以下正确的叙述是( D)

A. 在C程序中,每行中只能写一条语句

B. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数,都能被准确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 满分:2 分 21. 若有以下程序段: 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;} ...... 则该程序段的功能是( D) A. 对数组a进行插入排序(升序) B. 对数组a进行插入排序(降序) C. 对数组a进行选择排序(升序) D. 对数组a进行选择排序(降序) 满分:2 分

22. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(C ) A. extern B. register

C. auto D. static

满分:2 分

23. 以下正确的描述是( C)

A. C语言的预处理功能是指完成宏替换和包含文件的调用 B. 预处理指令只能位于C源程序文件的首部

C. 凡是C源程序中行首以\标识的控制行都是预处理指令 D. C语言的编译预处理就是对源程序进行初步的语法检查 满分:2 分 24. sizeof(float)是( B) A. 一个整型表达式 B. 一种函数调用 C. 一个不合法的表达式 D. 一个不合法的表达式 满分:2 分

25. 有定义:int a[5][4], (*p)[4]=a;,数组a的首地址为100,*(p+2)+3等于( D) A. 116 B. 118 C. 120

D. 122

满分:2 分

26. 以下不正确的语句为( B) A. if(x>y);

B. if (x= y) &&(x! = 0) x+= y;

C. if(x!= y)scanf(\D. if(x< y){x++ ;y++;} 满分:2 分

27. 有字符数组a[80]和b[80],则正确的输出形式是(C ) A. puts(a,b);

B. printf(\C. putchar(a,b); D. puts(a),puts(b); 满分:2 分

28. 设变量a b c d 和y都已经正确定义并赋值,若有以下if 语句: if(a=b

B. y=0 a=b 且 c!=d C. y=0 a

29. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( D) A. K%2

B. K%2==1 C. (K%2)!=0 D. !K%2==1

满分:2 分

30. 以下正确的叙述是(B )

A. C语言允许main函数带形参,且形参个数和形参名均可由用户指定 B. C语言允许main函数带形参,形参名只能是argc和argv

C. 当main函数带有形参时,传给形参的值只能从命令行中得到 D. 若有说明:main(int argc,char *argv),则形参argc的值必须大于1

满分:2 分

31. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为(D ) int a[3][4]; f(a); A. f(int array[][6]) B. f(int array[3][])

C. f(int array[][4] D. f(int array[2][5]) 满分:2 分

32. 建立函数的目的之一是(C ) A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅

D. 减少程序文件所占内存 满分:2 分

33. 下面程序应能对两个整型变量的值进行交换。以下正确的说法是(A ) main( )

{int a=10,b=20; printf(\swap(&a,&b); prinif(\swap(int p,int q) {int t; t=p;p=q;q=t;} A. 该程序完全正确

B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执 行语句不变)即可 D. 以上说法都不正确

满分:2 分

34. 下面是对s的初始化,其中不正确的是(D ) A. char s[5」={\B. char s[5]={'a','b','c'}; C. char s[5]=\D. char s[5]=\ 满分:2 分

35. 有定义:int a[5],*p=a;,则不能表示元素a[4]地址的是(B ) A. p+4 B. &a+4

C. &a[0]+4 D. a+4

满分:2 分

二、多选题(共 5 道试题,共 10 分。) V

1. 在函数调用过程中,下列说法正确的是( DE) A. 形式参数和实在参数各占一个独立的存储单元

B. 形式参数和实在参数存储空间都是在函数调用时分配的

C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变 D. 函数调用结束时,临时存储区被撤消

E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配 满分:2 分

2. 下列符号中可以用作自定义函数名的是( BCD) A. int B. go_to C. INT D. Getchar

E. typedef

满分:2 分

3. 在定义函数时,函数的存储类型可以( ABCD) A. 是static B. 是auto C. 是register D. 是extern E. 省略

满分:2 分

4. 在下面C语言的函数说明语句中,正确的是(A E) A. int fun(int , int);

B. int fun(int x,y); C. int fun(x,y);

D. int fun(int x; int y); E. int fun(int x,int y); 满分:2 分

5. 有定义:int a[5][4],*p=a[0];,则能正确引用a[2][3]元素地址的有( ADE ) A. a[2]+3 B. *((p+2)+3) C. *(p[2]+3)

D. *(a+2)+3 E. p+2*4+3

满分:2 分

三、判断题(共 10 道试题,共 20 分。)

V

1. 若有定义:long int j, *p;,则操作j=p;是合法操作。A A. 错误

B. 正确

满分:2 分

2. 动态变量都存储在内存动态存储区中。A A. 错误

B. 正确

满分:2 分

3. C语言采用解释方式将源程序转换为二进制的目标代码。A

A. 错误

B. 正确

满分:2 分

4. 在任何情况下,对二维数组的初始化都可以省略第一维的大小。A A. 错误

B. 正确

满分:2 分

5. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。A A. 错误 B. 正确

满分:2 分

6. return后面括号里的表达式的值即是此函数的值。B A. 错误

B. 正确

满分:2 分

7. C语言把文件看作是一个字符的序列。B A. 错误 B. 正确

满分:2 分

8. continue语句用在循环体中,可使整个循环不结束。A

A. 错误 B. 正确

满分:2 分

9. 对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。 B A. 错误 B. 正确

满分:2 分

10. 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。A

A. 错误 A B. 正确

满分:2 分

电子科大10秋学期《C语言》在线作业三 试卷总分:100 测试时间:--

一、单选题(共 35 道试题,共 70 分。)

V

1. 以下正确的说法是( C)

A. 用户若需要调用标准库函数,调用前必须重新定义

B. 用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C. 系统不允许用户重新定义标准库函数

D. 用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。 满分:2 分

2. 有定义:int x,*p1=&x, *p2;,则能使得p2也指向x的语句是( B) A. *p2=&x; B. p2=p1; C. p2=*p1;

D. p2=&p1;

满分:2 分 3. sizeof(float)是(C ) A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用

D. 一个不合法的表达式

满分:2 分

4. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( C) A. int B. float C. double D. 不确定

满分:2 分

5. 设C语言中,-个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( C) A. 0~255 B. 0~32767 C. 0~65535 D. 0~2147483647 满分:2 分

6. 下列说法不正确的是( C ) A. 形参是局部变量

B. 主函数中定义的变量在整个文件都有效 C. 可以在一个函数的复合语句中定义变量 D. 不同函数可以使用相同变量名

满分:2 分

7. 若有说明:int a[ ][4]={0,0};则下面不正确的叙述是(D )

A. 数组a的每个元素都可得到初值0 B. 二维数组a的第一维大小为1

C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a行数为1

D. 只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值0

满分:2 分

8. 已知函数的调用形式:fread(buffer,size,count,fp),其中buffer代表的是( C) A. 一个整型变量,代表要读入的数据项总数 B. 一个文件指针,指向要读的文件 C. 一个指针,指向要读入数据的存放地址 D. 一个存储区,存放要读的数据项 满分:2 分

9. 下面程序段,说法正确的为( D)

for (t=1; t<=100;t++) {scanf(\A. 当x<0时整个循环结束 B. x>=0时什么也不输出 C. printf函数永远也不执行

D. 最多允许输出100个非负整数 满分:2 分

10. 对两个数组a和b进行如下初始化

char a[]=\?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是(D ) A. a与b数组完全相同 B. a与b长度相同

C. a和b中都存放字符串

D. a数组比b数组长度长 满分:2 分

11. 以下正确的说法是( C)

A. 定义函数时,形参的类型说明可以放在函数体内

B. return后边的值不能为表达式

C. 如果函数值的类型与返回值类型不一致,以函数值类型为准 D. 如果形参与实参的类型不一致,以实参类型为准 满分:2 分

12. 以下不正确的说法是( B)

A. 全局变量,静态变量的初值是在编译时指定的 B. 静态变量如果没有指定初值,则其初值为0

C. 动态变量如果没有指定初值,则其初值不确定

D. 函数中的静态变量在函数每次调用时,都会重新设置初值 满分:2 分

13. 设有以下语句:

char str[4][12]={\; char *strp[4]; int i;

for(i=0;i<4;i++) strp[i]=str[i];

若0<=k<4,下列选项中对字符串的非法引用是( B) A. strp B. str[k] C. strp[k] D. *strp

满分:2 分

14. 有定义:float y,*p=&y;,假定变量y在内存中所占地址为100~103。那么p的值为( A) A. 100 B. 101 C. 102

D. 103

满分:2 分

15. 设有说明:char w; int x; f1oat y; double z;则表达式w* x+z-y值的数据类型为( D) A. float B. char

C. int D. double

满分:2 分

16. 在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是( D)

A. fopen( )

B. fseek( ) C. fclose( ) D. rewind( )

满分:2 分

17. 已知定义:int b[ ]={1,2,3,4},y,*p=b;则执行y=*p++后,y的值应为( A) A. 1 B. 2 C. 3 D. 4

满分:2 分 18. 有如下程序

main( ) { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ case 2: a++;b++ } printf(“a=%d,b=%d\\n”,a,b); } 该程序的输出结果是( A) A. a=2,b=1 B. a=1,b=1

C. a=1,b=0 D. a=2,b=2

满分:2 分

19. 为了避免嵌套的条件分支语句 if——else中的else总是与( C)组成成对关系 A. 缩排位置相同的

B. 在其之前未配对的

C. 在其之前未配对的最近的if D. 在同一行上的if 满分:2 分

20. C语言规定,函数返回值的类型是由(D )决定的 A. return语句中的表达式类型 B. 调用该函数时的主调函数类型

C. 调用该函数时由系统临时

D. 在定义函数时所指定的函数类型 满分:2 分

21. 若有以下定义,则能使值为3的表达式是( D) int k= 7,x =12; A. x%=(k%= 5) B. x%=(k-k%5) C. x%=k- k%5 D. (x%=k)-(k%=5) 满分:2 分

22. 下面程序段的运行结果是( B) char c[]=\A. 14 B. 3

C. 9

D. 字符串中有非法字符,输出值不确定 满分:2 分

23. 下面程序的运行结果是( B)

#include main() {char a[]=\int i,j=0; for(i=1;i<7;i++) if(a[j]

D. morning

满分:2 分

24. 下面程序的功能是用递归法将一个整数存放到一个字符数组中。存放时按逆序存放。如483存放成\请选择填空( D)

#include void convert(char *a,int n) {int i; if((i=n/10)!=0) convert(a+1,i); *a=【2】; } main() {int number; char str[10]=\A. n/10 B. n C. n/10+'0'

D. n+'0'

满分:2 分

25. 表达式18/4*sqrt(4.0)/8值的数据类型为( C) A. int B. float C. double D. 不确定

满分:2 分

26. 下列程序段不是死循环的是( C)

A. int i=100; while(1){i=i0+1;if(i>100) break; } B. for(;;);

C. int k=0; do{++k; if(i>100) break; }while(k>=0); D. int s=36;while(s);--s; 满分:2 分

27. \文件包含\预处理语句的使用形式中,当#include后面的文件名用\\,(双引号)括起时,寻找被包含文件的方式是(A )

A. 直接按系统设定的标准方式搜索目录

B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索 C. 仅仅搜索源程序所在目录 D. 仅仅搜索当前目录 满分:2 分

28. 以下叙述中正确的是( C)

A. 在程序的一行上可以出现多个有效的预处理命令行 B. 使用带参的宏时,参数的类型应与宏定义时的一致 C. 宏替换不占用运行时间,只占编译时间

D. 在以下定义中CR是称为\宏名\的标识符 #define C R 045 满分:2 分

29. 以下正确的描述是( B)

A. continue语句的作用是结束整个循环的执行

B. 只能在循环体内和switch语句体内使用break语句 C. 在循环体内使用break语句或continue语句的作用相同 D. 从多层循环嵌套中退出时, 只能使用goto语句 满分:2 分

30. 一个C语言程序是由(B ) A. 一个主程序和若干子程序组成 B. 函数组成

C. 若干过程组成 D. 若干子程序组成 满分:2 分

31. 对for(表达式1;;表达式3)可理解为( B) A. for(表达式1; 0;表达式3) B. for(表达式1;1;表达式3)

C. for(表达式1;表达式1;表达式3) D. for(表达式1;表达式3;表达式3)

满分:2 分

32. 已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是( D) void print_value(int *x) { printf(“%d\\n”,++*x); } A. 23 B. 24 C. 25

D. 26

满分:2 分

33. 若有说明:int a[3][4]; 则对a数组元素的正确引用是( A) A. a[2][4] B. a[1,3]

C. a[1+1][0] D. a(2)(1);

满分:2 分

34. 若有 int k=2; int *ptr1, *ptr2; ptr1=&k; ptr2=&k ;那么下列正确的语句是( A)

A. k=*ptr1+*ptr2 B. ptr2=ptr1*2 C. *ptr1=*ptr2

D. ptr1=*ptr1*(*ptr2) 满分:2 分

35. 下面四个选项中,均是不合法的整型常量的选项是( D) A. ?--0f1 -0xffff 0011 B. -0Xcdf 017 12,456

C. -018 999 5e2 D. -0x48eg -068 03f 满分:2 分

二、多选题(共 5 道试题,共 10 分。) V

1. 以下哪些是关于指针数组的正确描述( BCD) A. int (*a)[4]; B. int *a[4];

C. 指针数组每个元素都是指针变量

D. 若int a[4][4]; int *b[]={a[0],a[1],a[2],a[3]}; 则b是指针数组 E. 指针数组与指向数组的指针是等价的 满分:2 分

2. 下面关于C语言的说法错误的是(AB ) A. C函数必须有形式参数

B. 任何复合语句体的{ }中允许定义局部变量 C. 局部变量都存储在动态存贮区

D. C程序的执行起点只能是main函数

满分:2 分

3. 定义char s[81]; 后,能正确输入一个字符串到数组s的语句是( A) A. gets(s);

B. gets(&s[0]);

C. scanf (”%s”,&s[0]); D. scanf (”%c”,s); 满分:2 分

4. 以下程序正确计算p=n! (n>=0)的是( AB) A. for(p=1.0,k=1;k<=n;) p*=k++; B. p=1.0;k=0;while(k

C. p=1.0;k=1;do{++k;p*=k;} while(k<=n); D. p=1.0;for(k=n;k>=1;k--) p*=k--; 满分:2 分

5. C语言规定,如下说法是正确的(ABC)

A. 不能将结构作为整体来进行存取;

B. 结构是若干变量的集合,这些变量的类型可以相同;

C. 共用体(联合)允许不同数据类型的数据使用共同的存储区域;

D. 不能用&来取结构的地址;

E. 位段是一种特殊的结构成员。位段的类型可以是char、int、float、double等。 满分:2 分

三、判断题(共 10 道试题,共 20 分。) V

1. 表达式1/4+2.75的值是3。A A. 错误

B. 正确

满分:2 分

2. 指针变量的值是无符号整型值,所以指针变量都是整型变量。A A. 错误 B. 正确

满分:2 分

3. 结构体中的成员也可以是一个结构体变量。B A. 错误 B. 正确

满分:2 分

4. 设有下列说明语句struct ss{int x;float y;}ex; 则ex是结构体类型名。A A. 错误

B. 正确

满分:2 分

5. 函数即可以嵌套定义,又可以嵌套调用。A A. 错误 B. 正确

满分:2 分

6. 在函数定义中,形参变量是局部变量。B A. 错误

B. 正确

满分:2 分

7. 字符型数据和整数之间是不可以通用的。A A. 错误 B. 正确

满分:2 分

8. 被main函数调用的函数只能是库函数。A A. 错误 B. 正确

满分:2 分

9. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。B A. 错误

B. 正确

满分:2 分

10. continue语句用在循环体中,可使整个循环不结束。A A. 错误 B. 正确

满分:2 分

本文来源:https://www.bwwdw.com/article/npba.html

Top