高级语言程序设计A西南交通大学

更新时间:2024-02-02 13:56:01 阅读量: 教育文库 文档下载

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

前一次作业详情

你已经完成:11 题 (共有 27 题,客观题 11 道)

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。) 本次作业是本门课程本学期的第1次作业,注释如下: 一、单项选择题(只有一个选项正确,共11道小题) 1. 以下正确的C标识符是 (A) 0XH (B) _80 (C) main# (D) A 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考: 2. 以下说法中正确的是 (A) 一个函数在编译时被分配得到一个入口地址,这个入口地址称为函数的指针 (B) a/=b+c;这个式子和a=a/b+c;等价 (C) C语言开始执行程序的开始执行点是程序中第一条可执行的语句。 (D) 对二维数组a赋值可以用这样的语句完成int a[4][]={1,2,3,4,5,6,7,8}; 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:A 解答参考: 3. 设a是int型变量,b是float型变量,用下面的语句给这两个变量输入值 scanf(\,b=%f\,&a,&b); 为了把100和76.5分别赋给i和f,则正确的输入为: (A) 100 76.5 (B) a=100,b=76.5 (C) 10076.5 (D) a=100 b=76.5 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考: 4. 若有如下说明 。 char a[10]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’},*p=a; 则输出表达式*(p+8),即printf(\得到 (A) g (B) h (C) i (D) j 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考: 5. 函数Func的功能是( ) int Func(char *ptr) { char *p; p=ptr; while (*p++); return (p-ptr-1); } (A) 比较两个字串的大小 (B) 求字符串的长度 (C) 将串ptr复制到p中 (D) 以上三种说法都不对 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考: 6. 以下可作为函数fopen中第一个参数的正确格式是 (A) c:user\\text.tex (B) c:\%user\\text.txt (C) “c:user\\text.tex” (D) “c:\\\%user\\\\text.txt” 你选择的答案: D [正确] 正确答案:D 解答参考: 7. 若有宏定义#define PI 3.14 #define S(r) PI?r?r 则主函数中语句s2=S(r+3); 宏替换后的结果为 (A) s2=PI*r+3*r+3 (B) s2=3.14*(r+3)*(r+3) (C) s2=3.14*r+3*r+3 (D) s2= PI?r?r 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考: 8. 当调用函数时,实参是一个数组名,则向函数传送的是 。 (A) 数组的长度 (B) 数组的首地址 (C) 数组每一个元素的地址 (D) 数组每个元素中的值 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考: 9. 若有函数声明为:void func(double *p);则以下函数调用正确的是____。 (A) double x; f(x); (B) double x; f(?x); (C) double x; f(&x); (D) int x; f(&x); 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考: 10. 若定义typedef union {int a; long b; double c; } TY; 则表达式sizeof(TY)的值为 。 (A) 1 (B) 2 (C) 4 (D) 8 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考: 11. 要用fopen函数打开一个新的二进制文件,该文件要既能写也能读,则文件方式字符 串应是 (10) 。 (A) “ab+” (B) “wb+” (C) “r+” (D) “ab” 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考: (注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。) 二、主观题(共16道小题) 12. main() { int x=2,y=-1,z=2; if(x if(y<0) z=0; else z+=1; printf(“%d\\n”,z); } 写出程序输出结果 (1) 。 参考答案: 2 13. 下面程序的运行结果是 (2) 。 void fl(void) {int x=1; static y=2; x++; y++; printf(\} void main() { int k; for(k=1;k<=3;k++) fl(); } 参考答案: 2, 3 错一行扣1分 2, 4 无逗号扣1分 2, 5 无换行扣1分 14. #include ”stdio.h” void main() {char a[61],*s;int n; gets(a); for(s=a;*s;s++) if(*s>=’A’ && *s<=’Z’) *s+=32; puts(a); } 若程序的输入为SWJTU,则输出结果为 (3) 。 参考答案: swjtu 15. #include “stdio.h” #define N 5 int swap(int *p, int *q) {int t; if(p return p } void f(int a[ ],int m) {int *p, *q; p=a;q=a+m; while(swap(p,q)) {p++; q--} } void main( ) {int m,a[N]; for(m=0;m f(a,N-1); for(m=0;m } 若程序的输入为8 9 2 3 4, 则输出结果为 (4) 。 参考答案:4 3 2 9 8 16. 写一个程序,建立N元整型数组,然后输入一个整数x,查找x是否包含在数组中,若在,则返回第一次出现的下标以及总的出现次数;否则,输出下标为-1, 总的出现次数为0. (8分) 参考答案: #include “stdio.h”

#define N 8 int locate(int a[N],int x,int *pc) { int i,first=-1; *pc=0; for(i=0;ib)&& (c++) 后,c的值为 。 参考答案:1 3 24. 有如下语句:char A[ ]={ \}; 该字符串的长度是 ,A[3]= 。 参考答案:5 ?T?(允许无单引号和写ASCII码84) 25. 若有定义char ch='C'; 则puchar((ch>='A' && ch<='Z')? (ch + 32) : ch);语句的输出结果为 。 参考答案:c 26. 若有定义int a[]={ 1,2,3,4 }, *p=a+1; 则表达式*++p的值为 。 参考答案:3 27. 若有类型定义typedef int Mat[10]; 则 Mat a[5]; 表示的实际数组定义是 。 参考答案:int a[5][10]; (注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客

观题答案。)

本次作业是本门课程本学期的第2次作业,注释如下: 一、单项选择题(只有一个选项正确,共10道小题) 1. 以下说法中错误的是 。

(A) a*=1;这个式子等价于a=a*1; (B) a/=b+c;这个式子和a=a/b+c;等价 (C) a/=b-c;这个式子等价于a=a/(b-c); (D) a*=b;这个式子等价于a=a*b; 你选择的答案: B [正确] 正确答案:B 解答参考:

2.

16、若有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的元素的表达式是 (A) *p+5 (B) *(p+5) (C) *p+=5 (D) p+5

你选择的答案: B [正确] 正确答案:B 解答参考:

3. 下面哪条语句是错误的 (A) int a=0; (B) int a=b=c=1; (C) int a=0,b=0,c=0; (D) int a,b,c=1; 你选择的答案: B [正确] 正确答案:B 解答参考:

4. 已知实型变量a存贮的是一个0~1之间的实数,将a以两位小数百分比形式输出(如:a=0.347592,则输出为34.75%)正确的打印语句是 (A) printf(“%.2f%%”,a*100); (B) printf(“%.2f%”,a); (C) printf(“%.2f%%”,a/100); (D) printf(“%.2f%%”,100*(a+0.5)); 你选择的答案: A [正确] 正确答案:A 解答参考:

5. 定义C函数时,不给出返回值类型,则默认的返回值类型是 。

(A) float (B) void (C) int (D) NULL指针

你选择的答案: C [正确] 正确答案:C 解答参考:

6. C语言存贮字符串时,用特殊字符 表示字符串结束 (A) ?\\x0a? (B) ?0? (C) 13 (D) ?\\0?

你选择的答案: D [正确] 正确答案:D 解答参考:

7.

有以下程序段 int k=0;

while(k=1) k++;

则while 循环执行的次数是 。

(A) 无限次

(B) 有语法错,不能执行 (C) 一次也不执行 (D) 执行1次

你选择的答案: A [正确] 正确答案:A 解答参考:

8. 对于for循环语句:for(x=0,y=0;(y=3)&&(x<4);x++) y++;,正确的是 。 (A) 无限循环 (B) 循环次数不定 (C) 执行4次 (D) 执行3次

你选择的答案: C [正确] 正确答案:C 解答参考:

9. 有定义struct { int a[5]; } b; 则正确表达成员数组a的最后一个元素地址的是____。

(A) b.a (B) b.a[5] (C) b.a+4 (D) &(&b?>a[4]) 你选择的答案: C [正确] 正确答案:C 解答参考:

10. 以只写方式打开一个二进制文件,应选择的文件操作方式是____。 (A) \+\ (B) \+\ (C) \ (D) \

你选择的答案: D [正确] 正确答案:D 解答参考:

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客

观题答案。)

二、主观题(共16道小题) 11. 下面程序的输出是 (1) 。

#include \ void main()

{ char a[40]= \?p;

for(p=a; ?p!= 'i'; p++) putchar(?p ?32); }

参考答案: 全错0分

ADM 错一个字母扣1分

12. 下面程序的运行结果是 (2) 。

{ int x=1; static y=2; x++; y++;

printf(\}

void main() { int k;

for(k=1;k<=3;k++) fl(); }

参考答案:

2, 3 错一行扣1分 2, 4 无逗号扣1分 2, 5 无换行扣1分

13. 下面程序的运行结果是 (3) 。

#include \void main() { int m, n;

m=10;n= ?1;

do { m??; n+=5;

if(!(n%3)) printf(\ } while(m>n);

} 参考答案:

无明显空格扣1分

12 9 错一数扣2分;

14. 下面程序的运行结果是 (4) 。

#include \

int a[4]={ 1, 2, 3, 4 }; void main()

{ int ?p=a, m, n;

for(m=3; m>=0; m ? ?)

for(n=0; n<=m; n++) printf(\?(p+n));

}

参考答案:1234123121 1234, 123, 12, 1 四段各1分

15. 数组名作为参数传递给函数,作为实参的数组名被处理为该数组的 (1) 参考答案:(1) 首地址

16. 一个C程序中必须有 (2) 函数,无论该函数在整个程序中的位置如何,C程序总是从该函数开始执行。

参考答案:(2) 主或main( )

17. 有如下语句:char A[ ]={ \}; 该字符串的长度是 (3) ,A[3]= (4) 。 参考答案:(3) 5 (4) ?T?(允许无单引号和写ASCII码84)

18. 若有定义int x=5, n=5;则执行语句 x+=n++; 后,x的值= (5) ,n的值= (6) 。 参考答案:(5) 10 (6) 6

19. C语言的静态变量以及静态数组元素默认的初值为 (7) 参考答案:(7) 0

20. 若有int a=2,b=1,c=0; 执行语句c=a++ - b - -;后,变量c的值为 (14) b的值 (15) 参考答案:(14) 1 (15) 0

21. 结构化程序设计的三种基本结构包括有: 、 __和 ____。 参考答案:选择结构 循环结构 顺序结构

22. 算术表达式:的C语言表达式是:

参考答案:-b+sqrt(b*b-4*a*c)

23. 编写一程序,从键盘读入一个字符串并存入字符数组,然后依次输出第1, 3, 5, 7, …个字符。

例如:输入为: computer

输出为: cmue 参考答案:

#include

void main() /* 程序结构与头文件正确2分 */ { char s[255];int i; /* 正确输入2分 */

gets(s); /* 正确定义字符数组2分 */ for(i=0;s[i];i+=2) putchar(s[i]); /* 正确输出3分 */ }

24. 编程打印如下图形到屏幕上。 (9分)

* *** *****

******* *********

要求打印行数由键盘输入。

参考答案:

#include /* 程序结构正确2分 */ void main() { int n, i, j;

scanf(“%d”,&n); /* 正确输入行数1分 */ for(i=1;i<=n;i++) /* 外循环控制正确 1分 */

{ printf(“%*s”, n-i, “”); /* 正确输出前导空格2分 */ for(j=1;j<=2*i-1; j++) putchar(‘*’); /* 正确输出星号2分 */ printf(“\\n”); /* 正确换行 1分 */ } }

25. C源程序文件经过 处理后产生目标文件,目标文件经 处理后生成可执行文件。 参考答案:编译_____连接

26. 结构化程序设计只需采用顺序结构、分支结构和 结构这三种基本结构来编写程序。 参考答案:

_循环_ 本次作业是本门课程本学期的第3次作业,注释如下: 一、单项选择题(只有一个选项正确,共10道小题) 1. C语言表示逻辑假的方法是 (A) FALSE (B) 0 (C) 1 (D) NULL

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B

解答参考:

2. C语言开始执行程序的开始执行点是 (A) 程序中第一条可执行的语句 (B) 程序中第一个函数 (C) 程序中的main( )函数 (D) 包含文件中的第一个函数

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考:

3. continue语句的作用是 (A) 中止函数的执行 (B) 立即中止循环

(C) 中止本次循环,直接开始下一次循环 (D) 从一个循环体直接跳转至另一个循环体内 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考:

4. 有定义static int a[]={1, 2, 3, 4},*p ; 执行语句p=a+2 ; 后,表达式*p的值为 。 (A) 4 (B) 1 (C) 2 (D) 3

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考:

5. 下面用scanf语句获得从键盘输入的值,正确的语句是: (A) int a[12]; scanf(“%d”,&a[1]); (B) char a[12]; scanf(“%s”,&a); (C) int a[12]; scanf(“%d”,a[1]); (D) int a; scanf(“%d”,a);

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:A 解答参考:

6.

若有以下说明语句,且0<=i<=10,则 ( )是对数组元素的错误引用。 int a[]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a;

(A) *(a+i) (B) p+i (C) a[i] (D) *(&a[i] )

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考:

7.

以下程序的输出结果是 。

#define SQR(X) X*X main()

{ int a=16, k=2, m=1;  a/=SQR(k+m)/SQR(k+m);  printf(\a); }

(A) 16 (B) 2 (C) 9 (D) 1

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:B 解答参考:

8. C语言中,形参与实参之间的数据传递方式是____。 (A) 只能按值传递 (B) 只能按地址传递 (C) 由使用者指定传递方式

(D) 既可以按值传递也可以按地址传递 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:A 解答参考:

9.

若有定义 struct { int a[5]; } b; 则正确表达成员数组a的最后一个元素的地址表达式是

。 (A) b.a (B) b.a[5] (C) b.a+4 (D) &(&b?>a[4])

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考:

10. 若有函数说明为 void f(double ?s); 则以下函数调用正确的是 。 (A) double x; f(x); (B) double x; f(?x); (C) double x; f(&x); (D) int x; f(&x); 你选择的答案: C [正确] 正确答案:C 解答参考:

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客

观题答案。)

二、主观题(共16道小题)

11. 下列程序段的输出是 。

#include void main() { int k;

for(k=1; k<5; k++) {

if(k%2) printf(\ printf(\ }

}

参考答案:*#*#

12. 下列程序段的输出是 。

# include int f(int x) { static y=1; y++;

x+= y; return x; }

void main() { int k; k=f(3);

printf(\}

参考答案: 5,8

13. 表达式!!356的值是 。 参考答案:1

14. 符号 \和 'a' 的区别是 。

参考答案:前者(“a”)为串,占2字节存储; 后者(?a?)为字符占1字节存储

15. 若有定义int x=5, n=5;则执行语句 x+=n++; 后,x的值= ,n的值= 。 参考答案:10 6

16. C语言的静态变量以及静态数组元素默认的初值为 。 参考答案:0

17. 下面程序的运行结果是 。

#include

void main() {

int a=2,b=-1,c=2; if(a<0)

if(b<0) c=0; else c++;

printf(\,c);

} 参考答案:

考察知识点:if语句的嵌套。 运行结果:

c=2

18. 下面程序的运行结果是 。

#include void main( ) { int a,b,c; a=3;b=1;c=2; if(a if(b

else c=b; c=a;

printf(\}

参考答案:

考察知识点:if语句的嵌套,else总是和最近的未配对的if来配对。 运行结果:

3,2,3

19. 在屏幕上打印如下图形,要求打印行数为5。

1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4

参考答案:

#include “stdio.h” void main() {int i,j,n;

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

{ for(j=1;j<=i;j++) printf(“M”,i); for(j=i+1;j<=5;j++)

printf(“M”,j); printf(“\\n”); } }

20. 输入10个整数,由小到大排序并输出。 参考答案:

#include “stdio.h” #define N 10

void SelSort(int a[N]) /*选择排序函数*/ { int i,j,minj,t;

for(i=0;i {minj=i;

for(j=i+1;jif(a[j]

if(minj!=i) {t=a[i];a[i]=a[minj];a[minj]=t; } } }

void main() { int a[N],i; for(i=0;i SelSort(a); for(i=0;i }

21. C语言规定,标识符必须以 (1) 或 (2) 开头。

参考答案:(1) 字母 (2) 下划线 (1)(2)答案次序可交换

22. C语言的变量有4种存贮类型,即extern、static、register和 (3) 。 参考答案:(3) auto

23. 当C语言的算术表达式中出现了char型变量时,系统自动将该型变量值转换为 (4) 数据类型以后才参与运算。

参考答案:(4) int

24. 已知int a = 1, b = 2, c = 3, d = 4; 独立执行下列两条语句后,写出指定变量的值。

1)c=a?? ?b??; 变量 a= (12) , b= (13) 2)a?= ? ?d+1 ; 变量 a= (14) ,d= (15)

参考答案:

(12) 2 (13) 3 (14) 4 (15) 3

25. C语言没有专门的逻辑变量,在进行逻辑判断时,用数值 表示逻辑假。 参考答案:0

26.

参考答案:5*log10(1+P/N)

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客

观题答案。)

本次作业是本门课程本学期的第4次作业,注释如下: 一、单项选择题(只有一个选项正确,共10道小题) 1. 下列符号中,合法的C常量是 (A) ?\\t? (B) 079 (C) 3.5e2.1 (D) 0xch

你选择的答案: A [正确] 正确答案:A 解答参考:

2. 以下所列的C语言常量中,错误的是 。 (A) 0xFF (B) 1.2e0.5 (C) 2L (D) '\\72'

你选择的答案: B [正确] 正确答案:B 解答参考:

3. 能正确表示a和b同时为正或同时为负的逻辑表达式 。 (A) (a>=0||b>=0)&&(a<0 ||b<0) (B) (a>=0 && b>=0)&&(a<0 && b<0) (C) (a+b>0) &&(a+b<=0) (D) a*b>0

你选择的答案: D [正确] 正确答案:D 解答参考:

4. 以下选项中,不能正确赋值的是___。 (A) char s[10];s=\

(B) char s[]={'H', 'e', 'l', 'l', 'o', '\\0'}; (C) char s[10]=\ (D) char *s=\你选择的答案: A [正确] 正确答案:A 解答参考:

5. 若有定义和语句:int a=10,b=20,*p=&a,**pp=&p;p=&b;printf(\%d\\n\,则输出结果是____。 (A) 10,20 (B) 10,10 (C) 20,10 (D) 20,20

你选择的答案: D [正确] 正确答案:D 解答参考:

6. 以下对枚举类型名的定义中正确的是____。 (A) enum a={one,two,three}; (B) enum b{one=9,two=-1,three}; (C) enum c={\ (D) enum d{\你选择的答案: B [正确] 正确答案:B 解答参考:

7. 若有定义int a[] = {0 , 1 , 2 , 3 , 4 } , ?p=a+1; 则表达式?++p的值为 。 (A) 1 (B) 2 (C) 3 (D) 4

你选择的答案: B [正确] 正确答案:B 解答参考:

8. 若有定义int a[3][4]; 以下 是对该数组元素的错误引用。 (A) a[3][2] (B) ?(a[1]+2) (C) ?(?(a+2)+3) (D) ?(?a+1)

你选择的答案: A [正确] 正确答案:A 解答参考:

9. 以下语句用于跳出循环体的是 (7) 。 (A) break; (B) continue; (C) return; (D) quit;

你选择的答案: A [正确] 正确答案:A 解答参考:

10. 逻辑运算符两侧运算对象的数据类型 (1) 。 (A) 只能是0或非0正数 (B) 可以是任何类型的数据 (C) 只能是整型或字符型数据 (D) 只能是0或1 你选择的答案: B [正确] 正确答案:B 解答参考:

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客

观题答案。)

解答参考:

8.

以下函数返回a所指数组中最小值元素的下标值

fun(int *a, int n)  { int i,j=0,p;  p=j;

 for(i=j;i

 if(a[i]  return(p); }

在下划线处应填入的是 。

(A) i=p (B) a[p]=a[i] (C) p=j (D) p=i

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考:

9. 在C语言中,能代表逻辑“真”的是____。 (A) true (B) 大于0的数 (C) 非0的整数 (D) 非0的数

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考:

10. 若有定义和语句:int a=10,b=20,*p=&a,**pp=&p;p=&b;printf(\%d\\n\,则输出结果是____。 (A) 10,20 (B) 10,10 (C) 20,10 (D) 20,20

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考:

11.

若有定义 struct { int a[5]; } b; 则正确表达成员数组a的最后一个元素的

地址表达式是

。 (A) b.a (B) b.a[5] (C) b.a+4 (D) &(&b?>a[4])

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考:

12. 为改写磁盘文件中的数据,文件打开方式串正确的是 。 (A) \ (B) \ (C) \ (D) \

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考:

13. 若有定义int a[3][4]; 以下 是对该数组元素的错误引用。 (A) a[3][2] (B) ?(a[1]+2) (C) ?(?(a+2)+3) (D) ?(?a+1)

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:A 解答参考:

14. 若变量已有正确定义,程序 a=0; for (i=1; i<=n; i++) for (j=0; j<=i; j++) a++; 执行后,变量a的值是 (3) 。 (A) n (n +1 ) / 2

(B) ( n + 1 ) ( n + 2 ) / 2 (C) n ( n-1) / 2 (D) n ( n + 3 ) / 2

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:D 解答参考:

15. 改写磁盘文件中的数据,文件打开方式正确的是 (12) 。 (A) \

(B) \ (C) \ (D) \

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:A 解答参考:

16. 若有函数说明为 void f(double ?s); 则以下函数调用正确的是 (14) 。 (A) double x; f(x); (B) double x; f(?x); (C) double x; f(&x); (D) int x; f(&x);

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:C 解答参考:

二、判断题(判断正误,共5道小题)

17. 从键盘输入数据时,整型变量只能输入整型数值,实型变量只能输入实型数值。 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:说法错误 解答参考:

18. while(1) break; 不是死循环。

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:说法正确 解答参考:

19. 枚举类型定义中的枚举标识符有次序关系,能够进行比较大小的运算。 你选择的答案: [前面作业中已经做正确] [正确] 正确答案:说法正确 解答参考:

20. 若变量已有正确定义,且num = sum = 7;则执行表达式sum = num++, sum ++, ++num后sum的值为7.

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:说法错误 解答参考:

21.

若已定义int a=5;下面对两个语句(1)int *p=&a;和(2) *p=a;的解释是:语句(1)和(2)

中的*p含义相同,都表示给指针变量p赋值

你选择的答案: [前面作业中已经做正确] [正确] 正确答案:说法错误 解答参考:

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客

观题答案。)

三、主观题(共11道小题) 22.

main()

{ int x=2,y=-1,z=2; if(x if(y<0) z=0; else z+=1;

printf(“%d\\n”,z); }

写出程序输出结果 (1) 。 参考答案: 2

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

void fl(void) {int x=1;

static y=2; x++; y++;

printf(\

}

void main() { int k;

for(k=1;k<=3;k++) fl();

}

参考答案: 2, 3 错一行扣1分 2, 4 无逗号扣1分 2, 5 无换行扣1分

24. #include ”stdio.h”

void main()

{char a[61],*s;int n; gets(a);

for(s=a;*s;s++) if(*s>=’A’ && *s<=’Z’) *s+=32; puts(a); }

若程序的输入为SWJTU,则输出结果为 (3) 。

参考答案: swjtu

25. #include “stdio.h”

#define N 5

int swap(int *p, int *q) {int t; if(p

return p }

void f(int a[ ],int m) {int *p, *q; p=a;q=a+m;

while(swap(p,q)) {p++; q--} }

void main( ) {int m,a[N]; for(m=0;m f(a,N-1); for(m=0;m }

若程序的输入为8 9 2 3 4, 则输出结果为 (4) 。 参考答案:4 3 2 9 8

26. 下面程序的功能是输出100至1000以内的素数,请填空使之完善。

#include (1) main()

{ int m,k,j;

for(m=100;m<=1000;m++) {k=sqrt(m);

for(j=2; (2) ;j++)

if(m%j (3) 0) break; if( (4) ) printf(“]”,m); }

}

参考答案:(1) “math.h” (2) j<=k (3) = = (4) j>k 或j>=k+1 27. 下面程序的功能是统计字符文件a .txt中有多少个空格,请填空使之完善。

#include \main ( )

{ FILE *fp; char ch; int n= (5) ; if(!(fp=fopen(“a .txt”, (6) ))) { printf(File open correct!

\\n\

while ( (7) ))

{ ch=fputc( fp ); if(feof(p1))break;

if( (8) n++; }

printf(\ fclose(fp);

}

}

参考答案: (5) 0 (6) ”r” (7) feof(fp) (8) ch= =? ?

28. 有如下语句:char A[ ]={ \}; 该字符串的长度是 (3) ,A[3]= (4) 。 参考答案:(3) 5 (4) ?T?(允许无单引号和写ASCII码84)

29. 若有定义int x=5, n=5;则执行语句 x+=n++; 后,x的值= (5) ,n的值= (6) 。 参考答案:(5) 10 (6) 6

30. 若有int a=2,b=1,c=0; 执行语句c=a++ - b - -;后,变量c的值为 (14) b的值 (15) 参考答案:(14) 1 (15) 0

31. 编程打印如下图形到屏幕上。 (9分)

* *** *****

******* *********

要求打印行数由键盘输入。

参考答案:

#include /* 程序结构正确2分 */ void main() { int n, i, j;

scanf(“%d”,&n); /* 正确输入行数1分 */ for(i=1;i<=n;i++) /* 外循环控制正确 1分 */

{ printf(“%*s”, n-i, “”); /* 正确输出前导空格2分 */ for(j=1;j<=2*i-1; j++) putchar(‘*’); /* 正确输出星号2分 */ printf(“\\n”); /* 正确换行 1分 */ } }

32. 定义两个N个元素的整型数组,要求用初始化方法给这两个N元数组提供初值,要求每个数组中的元素初值各不相同但两个数组之间允许有相同的元素。如果把这两个数组视为两个整数集合,编写程序,按由小到大次序输出这两个集合的交集中的元素。如果交集为空则输出no common elements. (10分)

(提示:N用 #define定义,N不要太大,取6~8即可; 对提取的公共元素需要进行由小到大排序,最好的解决方法是插入排序,即选出一个公共元素则插入,选完则插入排序完成;本题并不限定使用插入排序) 例如: int a[N]={ -3, 9, 7, 10, 12, -8, 5, -4 }, b[N]={ 8, 10, -4, 5, 0, -8, 13, 6};

则程序输出应为:-8 -4 5 10

参考答案:

#include /* 程序结构正确1分 */ #define N 8

void main() /* 正确定义和初始化数组a, b 1分 */

{ int a[N]={ -3, 9, 7, 10, 12, -8, 5, -4 }, b[N]={ 8, 10, -4, 5, 0, -8, 13, 6};

int c[N], k=0,j, m, n; /* 正确定义和初始化其它需要的变量 1

分 */

for(m=0;m

if(a[m]==b[n]) /* 正确排序 2分*/ { j=k-1;

while(j>=0&&a[m]

c[j+1]=a[m];k++;break;

} if(k>0) for(m=0;m /*正确输出2分*/ else printf(\ printf(\}

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

Top