程序设计基础(C)习题指导书2014版(附带答案)(8)

2019-03-28 15:33

《程序设计基础(C)》习题指导书

2.若有说明:int a[3][4],则a[1+1][0]不是对a数组元素的正确引用。( )?

3.char a[]={0,1,2,3,4,5,6}是正确的数组说明语句。( )? 4.字符串“this”大于字符串“that”。( )?

5.C语言的数组名是一个地址常量,不能对它进行加、减和赋值运算。( )? ㈣.程序设计题

1.编写程序打印九九乘法表。 2.打印杨辉三角形的前10行。

3.用选择排序法对十个随机整数进行排序。 4.编程求一个3×3矩阵对角线元素之和。

5.Fibonacci数列为1、1、2、3、5、8、13、??,编程输出该数列的前20项。

? 应用篇

㈠.填空题

1.以下findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。

findmax(int s[ ],int t) { int k,p;

for(p=0,k=p;ps[k]) k=p ; return k ; }

2.以下程序统计从终端输入的字符中每个大写字母的个数,num[0]中统计字母A的个数,其它依次类推。用#号结束输入,请填空。

#include “stdio.h” #include “ctype.h” main()

{ int num[26]={0},i; char c; while(c=getchar()!=‘#’) if(isupper(c)) num[ c-‘A’ ]+=1; for(i=0;i<26;i++) if(num[i]) printf(“%c: %d\\n”,i+‘A’,num[i]); }

3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

请填空。 main( )

{ int i,a[20],sun,count; suum=count=0;

for(i=0;i<20;i++) scanf(\ &a[i] ); fro(i=0;i<20;i++) { if(a[i]>0) { count++;

sum+= a[i] ; } }

printf(\ }

4.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。

第 36 页 共 64 页

《程序设计基础(C)》习题指导书

main( )

{ float x[1000], sum=0.0, ave, a; int n=0, i;

printf(\:\\n\;scanf(\,&a); while(a>=0.0&& n<1000) { sum+=a; x[n]=a ; n++; scanf(\,&a); }

ave= sum/n ; printf(\:\\n\; printf(\,ave); for( i=0;i< n;i++ )

if(x[i]

5.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

其构成规律是:第0列元素和主对角线无素均为1,其余元素为其左上方和正上方元素之和, 数据的个数每行递增1。请将程序补充完整。 #defint N 6

void YangHui(int *x[N][N]) { int i,j; x[0][0]=1

for(i=1;i

{ x[i][0]=x[i][i] =1; for(j=1;j

x[i][j]= x[i-1][j-1]+x[i-1][j] ; } }

6.以下程序运行后的输出结果是

main( )

{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

for(j=i+1;j<3;j++) a[j][i]=0; for(i=0;i<3;i++)

{ for(j=0;j<3;j++) printf(\printf(\} }

答案: 123 056 009

第 37 页 共 64 页

《程序设计基础(C)》习题指导书

㈡.选择题

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

A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1 2.下面程序(每行程序前面的数字表示行号)中( )。 1 main( ) 2 {

3 int a[3]={3*0}; 4 int i;

5 for(i=0;i<3;i++) scanf(\ 6 for(i=1;i++) a[0]=a[0]+a[i]//此行有错 7 printf(\

A.没有错误 B.第3行有错误 C.第5行有错误 3.下面程序 (每行程序前面的数字表示行号) 中( )。

1 main( ) 2 {

3 float a[10]={0.0}; 4 int i;

5 for(i=0;i<3;i++) scanf(\6 for(i=0;i<10;i++) a[0]=a[0]+a[i]; 7 printf(\8 }

A.没有错误 B.第3行有错误 C.第5行有错误4.下面程序有错的行是( )。

1 main( ) 2{

3 int a[3]={1}; 4 int i;

5 scanf(\

6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf(\ 8 }

A.3 B.6 C.7 D.5

5.下面程序(每行程序前面的数字表示行号) 中( )。 1 main( )

2 {

3 int a[3]={0};

4 int i;

5 for(i=0;i<3;i++)scanf(\ 6 for(i=1;i<4;i++)a[0]=a[0]+a[i]; 7 printf(\ 8 }

A.没有错误 B.第3行有错误 C.第5行有错误 6. 有以下程序

#include #include main( )

第 38 页 共 64 页

D.第7行没有错误 D.第7行有错误

D.第6行有错误 《程序设计基础(C)》习题指导书

{

char a[7]=\int i,j;

i=sizeof(a); j=strlen(a);

printf(\}

程序运行后的输出结果是( )。

A. 5 5 B. 7 6 C. 7 5 D. 6 6 7.以下程序的输出结果是( )。 main( )

{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++) printf(\

}

A. 1,5,9, B. 1,4,7, C. 3,5,7, D. 3,6,9, 8.对两个数组a和b进行如下初始化: char a[]=\

char b[]={’A’,’B’,’C’,’D’,’E’,’F’}; 则以下叙述正确的是( )

A. a与b数组完全相同 B. a数组比b数组长度长 C. a和b中都存放字符串 D. a与b长度相同 ㈢.判断题

1.若int a[2][2]={{1},{2,3}};则a[0][1]的值为0。( )? 2.有如下说明语句 int a[10]={6,7,8,9,10};因为数组长度与初值的个数不相同,所以此语句不正确。( )? 3.字符个数多的字符串比字符个数少的字符串大。( )? 4.字符数组的字符串可以整体输入、输出。( )?

5.可以在赋值语句中通过赋值运算符\对字符数组整体赋值。( )? ㈣.程序设计题:

1.用随机函数产生20个100以内的整数,用选择法对它们排序。 2.用随机函数产生50个200以内的整数,用冒泡法对它们排序。

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

4.查找数组数据中的最大元素和次大元素。

5.编程从输入的10个数中,去掉一个最大数和一个最小数,求剩余数的平均值。 6.编程输入5个字符串,要求按从小到大的顺序排序并输出。(排序方法不限)。

? 提高篇

㈠.填空题

1.若有以下程序

main( )

{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++)

{ if(a[i][j]<0) continue; if(a[i][j]==0) break;

第 39 页 共 64 页

《程序设计基础(C)》习题指导书

s+=a[i][j]; }

}

printf(\}

执行后输出的结果是 58 。

2.若有定义语句:char s[100],d[100];int j=0;且s中已赋字符串,请填空以实现字符串拷贝。(注意:不得使用逗号表达式)

while(s[i]) {d[j]= s[i++] ;j++} d[j]=0;

3. 以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。 #include #include main( )

{ char s[80], d[80]; int i,j; gets(s);

for(i=j=0;s[i]!='\\0';i++)

if( s[i]>=’0’&&s[i]<=’9’ ) { d[j]=s[i]; j++; } d[j]='\\0'; puts(d); }

4.函数fun的功能是:使一个字符串按逆序存放,请填空 void fun (char str[]) { char m; int i,j;

for(i=0,j=strlen(str);i< j-1 ;i++,j--) { m=str[i];

str[i]= str[j-1] ; str[j-1]=m; }

printf(\ }

5.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,例如:输入的两个字符串分别为abcdef和 abceef,则输出为-1。请填空: #include main( )

{ char str1[100],str2[100],c; int i,s;

printf(\ printf(\ i=0;

while((strl[i]==str2[i]&&(str1[i]!= ’\\0’ )) i++;

s= str1[i]-str2[i] ; printf(\ } 6.有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。请填空。(这

第 40 页 共 64 页


程序设计基础(C)习题指导书2014版(附带答案)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年高考成语复习分类[五]特殊用法类[六]谦辞敬辞类(精校WORD

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: