[推荐]C语言各章节练习题(含答案)

发布时间 : 星期五 文章[推荐]C语言各章节练习题(含答案)更新完毕开始阅读

三、编程

1、从键盘上输入若干学生的成绩,当输入负数时结束输入,统计并输出最高成绩和最低成绩。 2、输出如下图所示的下三角形乘法九九表

1 2 3 4 5 6 7 8 9 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81

六、数组

1.以下为一维整型数组a的正确说明是____D_____. a)int a(10); b)int n=10,a[n]; c)int n; d)#define SIZE 10 scanf(\ int a[n];

2.以下对二维数组a的正确说明是___C_____.

a)int a[3][]; b)float a(3,4); c)double a[1][4] d)float a(3)(4);

3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_D.(假设a[0][0]位于数组的第一个位置上。)

a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+1

4.若二维数组a有m列,则在a[i][j]前的元素个数为___B_____. a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1 5.若有以下程序段:

?????

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;} ... ...

则该程序段的功能是___B______.

a)对数组a进行插入排序(升序) b)对数组a进行插入排序(降序)

c)对数组a进行选择排序(升序) d)对数组a进行选择排序(降序) 6.有两个字符数组a、b,则以下正确的输入语句是___B____.

a)gets(a,b); b)scanf(\7.下面程序段的运行结果是____D_____.

char a[7]=\

char b[4]=\

strcpy(a,b); 复制函数,将字符2的复制到1

printf(\空格 b)\\0 c)e d)f 8.判断字符串s1是否大于字符串s2,应当使用___D____.

a)if(s1>s2) b)if(strcmp(s1,s2)) c)if(strcmp(s2,s1)>0) d)if(strcmp(s1,s2)>0) 9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。

#include

main() {

char s[80],c1,c2=' '; int i=0,num=0; gets(s);

while(s[i]!='\\0') {c1=s[i]; if(i==0)c2=' '; else c2=s[i-1]; if(___)num++; i++; }

printf(\}

a)c1==' '&&c2==' ' b)c1!=' '&&c2==' ' c)c1==' '&&c2!=' ' d)c1!=' '&&c2!=' ' 10.下面程序的运行结果是__B______.

#include main()

{char str[]=\ int k;

for(k=2;(c=str[k])!='\\0';k++) {switch(c)

{case 'I':++k;break; case 'L':continue;

default:putchar(c);continue; }

putchar('*'); } }

a)SSW* b)SW* c)SW*A d)SW

填空 1. 若有定义:double x[3][5];则x数组中行下标的下限为____0_____,列下标的上限为___4______. 2.下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main() {int a[N],i; for(i=0;i

scanf(\_&a[i]_____); for(i=0;i

{if (____i%4==0_________) _printf(“\\n”)____________ printf(\ }

printf(\}

3. 下面程序可求出矩阵a的主对角线上的元素之和,请填空。 main()

{int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

for(i=0;i<3;i++) for(j=0;j<3;j++)

if(_i==j____)sum=sum+__a[i][i]_____; printf(\}

4. 当从键盘输入18并回车后,下面程序的运行结果是____10010____. main()

{int x,y,i,a[8],j,u,v; scanf(\ y=x;i=0; do {u=y/2; a[i]=y%2; i++;y=u; }while(y>=1); for(j=i-1;j>=0;j--) printf(\}

5. 下面程序用插入法对数组a进行降序排序。请填空。

main()

{int a[5]={4,7,2,5,1}; int i,j,m; for(i=1;i<5;i++) {m=a[i]; j=_i-1___;

while(j>=0&&m>a[j]) {_a[j+1]=a[j]______; j--; }

_a[j+1]______=m;

联系合同范文客服:xxxxx#qq.com(#替换为@)