29.请读程序:
main( )
{int n[2],i,j,k;
for(i=0;i<2;i++) n[i]=0;
k=2;
for(i=0;i for(j=0;j printf(“%d\n”,n[k]); } 上面程序的输出结果是( A )。 A) 不确定的值 B) 3 C) 2 D) 1 30.请读程序片段(字符串内没有空格字符):printf(“%d\n”,strlen(“ATS\n012\1\\”));其输出结果应为( C )。 A) 11 B) 10 C) 9 D) 12 31.下述对C语言字符数组的描述中错误的是( C )。 A) 字符数组可以存放字符串 B) 字符数组中的字符串可以整体输入、输出 C) 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较 32.阅读下列程序: main( ) {int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i for(j=0;j n[j]=n[i]+1; printf(“%d\n”,n[1]); } 上述程序运行后,输出的结果是( D )。 A) 2B) 1C) 0 D) 3 33.以下程序的输出结果是( C )。 main( ) {int n[3][3], i, j; for(i=0;i<3;i++) for(j=0;j<3;j++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf(“%d\n”, n[i][j]); } A) 14 B) 0 C) 6 D) 值不确定 34.以下语句的输出结果为( A )。 printf(“%d\n”, strlen(“\t\”\065\xff\n”)); A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出 35.合法的数组定义是( D )。 A) int a[]=”string”; B) int a[5]={0,1,2,3,4,5}; C) char a=”string”; D) char a[]={0,1,2,3,4,5}; 二、填空题 1.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。 #include #include main( ) {char a[ ]="clanguage", t; int i, j, k; k=strlen(a); for(i=0; i<=k-2; i+=2) for(j=i+2; j if( a[j]>a[i] ) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf("\n"); } 2.若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) while(s[i]){ d[j]= s[i++] ;j++;} d[j]=0; 3.下列程序段的输出结果是 Hello 。 main( ) { char b[]="Hello,you"; b[5]=0; printf("%s\n", B); } 4.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 a=1234b=5 。 char a[10], b; scanf(“a=%s b=%c”, a, & B); 5.以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制数的形式输出,请填空。 main( ) {int b[16]={‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’, ‘C’,‘D’, ‘E’, ‘F’}; int c[64], d, i=0, base; long n; printf(“Enter a number:\n”); scanf(“%ld”,&n); printf(“Enter new base:\n”); scanf(“%d”,&base); do {c[i]= n%base ; i++; n=n/base; }while(n!=0); printf(“Transmite new base:\n”); for(--i;i>=0;--i) {d=c[i]; printf("%c", [ d] ); } } 6.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中的第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。请填空。 main( ) {char str1[100], str2[100], c; int i, s; printf(“\n Input string 1:\n”); gets(str1); printf(“\n Input string 2:\n”); gets(str2); i=0; while((str1[i]= =str2[i])&&(str1[i]!= ' \0 ' )) i++; s= str1[i]-str2[i] ; printf("%d\n", s); } 7.以下语句的输出结果是 2 。 printf(“%d\n”,strlen(“\t\”\085\xff\n”)); 8.对数组中的元素值进行排序: main( ) {int a[]={2,4,15,3,17,5,8,23,9,7,11,13}, i, j, k; for(k=0;k<12;k++) for(i=k;i<12;i++) if(a[i]> a[k] ) {j=a[i]; a[i]= a[k] ; a[k] =j; } for(i=0;i<12;i++) printf(“%4d”, a[i]); } 9.由25人围坐成圆圈,先从任意一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1、2、3、……),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。 #include Void main( ) {int a[26], j, n, count; for(j=1;j<=25;j++) a[j]=j; j=1;count=0;n= 0 ; do {if(a[j]!=0) 考试大(www.Examda。com) {n++; if(n%5= =0) { a[j]=0 ; if(count= =24) printf(“%d\n”, j); count++; } } j++; if(j>25) j=1; } while( count<25 ); } 10.阅读下列程序: main( ) {int i, j, row, column, m; int array[3][3]={{100, 200, 300}, {28, 72, -30}, {-850, 2, 6}}; m=array[0][0]; for(i=0; i<3; i++) for(j=0; j<3; j++) if(array[i][j] {m=array[i][j]; row=i; column=j;} printf("%d, %d, %d\n", m, row,column); } 上述程序的输出结果是 -850,2,0 。 11.以下程序的功能是:从键盘上输入若干个学生的成绩,计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 main( ) {float x[1000], sum=0.0, ave, a; int i, n=0; printf(“Enter mark:\n”); scanf(“%f”, &a); while(a>=0.0&&n<1000) {sum+= a ; x[n]= a ; n++; scanf(“%f”, &a);} ave= sum/n ; printf(“Output:\n”); printf(“ave=%f\n”, ave); for(i=0;i if( ave>a[i] ) printf(“%f\n”, x[i]); }
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |