C语言重修复习资料(2016年4月答案) 下载本文

C程序设计复习 if(isupper(c)) num[ c-‘A’ ]+=1; for(i=0;i<26;i++) if(num[i]) printf(“%c: %d\\n”,i+‘A’,num[i]); }

㈡.选择题:

1.以下程序的输出结果是( B )。

A.不确定的值 B.3 C.2 D.1 main()

{ int n[2]={0},i,j,k=2; for(i=0;i

for(j=0;j

2.以下对一维数组a的正确说明是( D )。 A.char a(10); B.int a[ ];

C.int k=5,a[k]; D.char a[ ]={‘a’,‘b’,‘c’}; 3.若有说明语句:int a[2][4];则对a数组元素的正确引用是( A )。 A.a[0]3] B.a[0][4] C.a[2][2] D.a[2][2+1] 4.以下能对二维数组y进行正确初始化的语句是( D )。 A.int y[2][ ]={{ 1,0,1 },{ 5,2,3 }}; B.int y[ ][3]={{1,2,3},{4,5,6}}; C.int y[2][4]={1,2,3},{4,5},{6};

D.int y[ ][3]={{1,0,1,0},{ },{1,1}};

5.若有说明语句:int y[ ][4]={0,0};则下面不正确的叙述是( C )。 A.数组y的每个元素都可以得到初值0;

B.二维数组y的行数为1; C.该说明等价于int y[ ][4]={0}; D.只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0;

6.若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8};则a数组的行数为( 3 )。 A.3 B.2 C.无确定值 D.1

7.若二维数组y有m列,则在y[i][j]前的元素个数为( C )。

A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1 8.若有以下语句,则正确的描述是( B )。 char x[ ]=“12345”;char y[ ]={‘1’,‘2’,‘3’,‘4’,‘5’}; A.x数组与y数组的长度相同 B.x数组长度大于y数组长度 C.x数组长度小于y数组长度 D.x数组等价于y数组 9.下面程序段的运行结果是( B )。 A.‘a’‘b’ B.ab C.ab c D.abc

char c[5]={‘a’,‘b’,‘\\0’,‘c’,‘\\0’};printf(“%s”,x); 10.有两个字符数组a、b,则以下能正确为a、b进行赋值的语句是( D )。

第 29 页 共 43 页

C程序设计复习 A.gets(a,b); B.scanf(“%s%s”,&a,&b); C.getchar(a);getchar(b); D.gets(a);gets(b);

11.有字符数组s1[80]和s2[80],则以下能正确对s1、s2进行输出的语句是( B )。 A.puts(s1,s2); B.printf(“%s,%s\\n”,s1,s2); C.putchar(s1,s2); D.puts(s1),puts(s2); 12.下面描述正确的是( D )。

A.两个字符串所包含的字符个数相同时,才能比较字符串; B.字符个数多的字符串比字符个数少的字符串大

C.字符串“STOP ”与“STOP”相等 D.字符串“That”小于字符串“The” 13.以下对字符数组的描述中错误的是( C )。

A.字符数组中可以存放字符串 B.字符数组中的字符串可以整体输入、输出 C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 14.语句printf(“%d\\n”,strlen(“school”));的输出结果是( B )。 A.7 B.6 C.存在语法错误 D.不定值 15.有语句char s1[10],s2[10]={“books”};则能将s2的值正确赋给s1的语句是( B )。

A.s1={“books”}; B.strcpy(s1,s2); C.s1=s2; D.strcpy(s2,s1);

㈢.程序设计题:

1.编写程序打印九九乘法表。

2.用随机函数产生20个100以内的整数,用选择法对它们排序。 3.用随机函数产生50个200以内的整数,用冒泡法对它们排序。 4.打印杨辉三角形的前10行。

5.有一篇文章,共有3行文字,每行有80个字符。要求统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

6.输入一行数字字符,请用数组元素作为计数器来统计每个字符的个数。用下标为0的元素统计字符“1”的个数,下标为1的元素统计字符“2”的个数,依次类推。

第 30 页 共 43 页

C程序设计复习

第八章 预处理命令

一.知识点

1.宏定义:注意带参宏定义

2.文件包含:注意两种书写方式的区别

二.练习

(1).选择题:

1.以下程序的输出结果是( B )。

A.15 B.100 C.10 D.150

#define MIN(x,y) (x)<(y)?(x):(y) main()

{ int i,j,k;i=10;j=15;k=10*MIN(i,j); printf(“%d\\n”,k);}

2.以下程序中的for循环执行的次数是( C )。 A.5 B.6 C.8 D.9

#define N 2

第 31 页 共 43 页

C程序设计复习 #define M N+1

#define NUM (M+1)*M/2 main()

{ int i;for(i=1;i<=NUM;i++); printf(“%d\\n”,i);} 3.以下程序的输出结果是( B )。

A.11 B.12 C.13 D.15

#include “stdio.h”

#define FUDGF(y) 2.84+y #define PR(a) printf(“%d”,(int)(a)) #define PRINT1(a) PR(a);putchar(‘\\n’) main()

{ int x=2;PRINT1(FUDGF(5)*x); } 4.以下叙述正确的是( D )。

A.用#include包含的头文件的后缀不可以是“.a”

B.若一些源程序中包含某个头文件;当该头文件有错时,只需对该头文件进行修改,包含此头文件所有源程序不必重新进行编译 C.宏命令可以看做是一行C语句

D.C编译中的预处理是在编译之前进行的。 5.以下有关宏替换的叙述不正确的是( D )。

A.宏替换不占用运行时间 B.宏名无类型

C.宏替换只是字符替换 D.宏名必须用大写字母表示

第 32 页 共 43 页