文档详情

C语言程序设计答案(黄保和编)第8章.doc

发布:2015-09-01约5.61千字共8页下载文档
文本预览下载声明
一 、选择题 1.以下数组定义中,错误的是:C)int a[3]={1,2,3,4}; 2.以下数组定义中,正确的是:B) int a[][2]={1,2,3,4}; 3.设有定义“int a[8][10];”,在VC中一个整数占用4字节,设a的起始地址为1000,则a[1][1]的地址是:D)1044 4.已知有数组定义“int a[][3]={1,2,3,4,5,6,7,8,9};”,则a[1][2]的值是:C)6 5.在以下字符串定义、初始化和赋值运算中,错误的是:A) char str[10];str=”String”; 6.设有以下字符串定义, char s1[]={‘S’,’t’,’r’,’i’,’n’,’g’}; char s2[]=”String”; 则s1和s2:C)长度不同,但内容相同。 7.设有定义“int a[10]={0};”,则说法正确的是:A)数组a有10个元素,各元素的值为0. 8.设已定义“char str[6]={‘a’,’b’,’\0’,’c’,’d’,’\0’};”,执行语句“printf(“%s”,str)”后,输出结果为:B)ab 9.引用数组元素时,数组元素下标不可以是:C)字符串 10.已定义字符串S1和S2,以下错误的输入语句是:C)gets(s1,s2); 11.下面程序段的运行结果是:A)123 void main() { char a[]=”abcd”,b[]=”123”; strcpy(a,b); printf(“%s\n”,a); } 12.下面程序段的运行结果是:A)123 void main() { char a[]=”123”,b[]=”abcd”; if(ab)printf(“%s\n”,a); else printf(“%s\n”,b); } 二、编程题 1.一维数字a的值已经,请把数组中的值按逆序存放,然后输出数组。例如数组中原来的值为3,4,2,1,6,颠倒后变成6,1,2,4,3. #includestdio.h main() { int i,a[5]={2,3,45,12,5},t; printf(转换前:); for(i=0;i5;i++) printf(%d\t,a[i]); for(i=0;i5/2;i++) { t=a[i]; a[i]=a[5-i-1]; a[5-i-1]=t; } printf(\n转换后:); for(i=0;i5;i++) printf(%d\t,a[i]); } 2.输入一个整数(位数不确定),从高位到低位依次输出各位数字,其间用逗号分隔。例如输入整数为2345,则输出应为2,3,4,5。 #includestdio.h main() { int a[10],x,i; printf(输入一个整数:); scanf(%d,x); for(i=0;x0;i++) { a[i]=x%10; x/=10; } for(i--;i=0;i--) printf(%d,,a[i]); printf(\b ); } 3.若某数的平方具有对称性质,则称该数为回文数。例如11的平方121,则称11为回文数。请找出1~999中的所有回文数。 #includestdio.h main() { int x,i,j,a[10],wei,p; for(i=1;i1000;i++) { p=1; x=i*i; for(j=0;x0;j++) { a[j]=x%10; x/=10; } wei=j; for(j--;j=0;j--) { if(a[j]!=a[wei-1-j]) { p=0; break; } } if(p==1) printf(%d\t,i); } } 4.用选择排序法对整形数字排序。 #include stdio.h #include stdlib.h void selectsort(int a[],int n) { int i,j,k,num; for(i=0;in-1;i++) /* 外部循环实现选择排序 */ { k=i; for(j=i+1;jn;j++) /* 内部循环得到最小数 */ { if(a[j]a[k]) k=j; } if(k!=i) { num = a[k]; /* 交换排序最小数 */
显示全部
相似文档