for(i=0;i for(j=0;j { printf(\ scanf(\ } for(i=0;i { for(j=0;j { printf(\ } printf(\ } printf(\分隔线*/ for(i=0;i { for(j=0;j { if(a[j][i]>a[i][j]) { t=a[j][i];a[j][i]=a[i][j];a[i][j]=t; } } for(j=i;j { printf(\ } printf(\ for(k=0;k } getch(); } 【运行结果】 a[0][0]=1 a[0][1]=2 a[0][2]=3 a[0][3]=4 a[1][0]=5 a[1][1]=6 a[1][2]=7 a[1][3]=8 a[2][0]=9 a[2][1]=10 a[2][2]=11 a[2][3]=12 a[3][0]=13 a[3][1]=14 a[3][2]=15 a[3][3]=16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ----------- 1 5 9 13 6 10 14 11 15 16 24.通过键盘给 3×4 的二维数组输入数据,然后分别按行和按列输出数组元素。 #define M 3 #define N 4 main() { int a [N],i,j; printf(\ for(i=0;i { printf(\提示输出元素位置*/ scanf(\ /*为指定元素赋值*/ } printf(\ /*按行输出数组元素值*/ for(i=0;i printf(\ printf(\按列输出数组元素值*/ for(i=0;i for(j=0;j printf(\ getch(); } 【运行结果】 Input integer number: a[0][0]=1 a[0][1]=2 a[0][2]=3 a[0][3]=4 a[1][0]=5 a[1][1]=6 a[1][2]=7 a[1][3]=8 a[2][0]=9 a[2][1]=10 a[2][2]=11 a[2][3]=12 Out by row: 1 2 3 4 5 6 7 8 9 10 11 12 Out by collum: 1 5 9 2 6 10 3 7 11 4 8 12 25.编写程序,将两个字符串连接起来,不要使用 strcat 函数。 #include\main() { char str1[80],str2[80]; int i=0,l1; printf(\ gets(str1); /*若换成scanf(\后面应该增加fflush(stdin);函数语句*/ printf(\ gets(str2); l1=strlen(str1); /*计算字符串 1 的长度*/ while(str2[i]) { str1[l1+i]=str2[i]; i++; } str1[l1+i]='\\0'; /*字符串连接后,不能忘记追加一个字符串结束符*/ puts(str1); /*可换成语句:printf(\ getch(); } 26.输入一行字符串,统计该字符串中字符对 ab 的个数。 #include\ main() { char str[80]; int i=0,count=0; printf(\ gets(str); while(str[i]) { if(str[i]=='a' && str[i+1]=='b') { count++; i+=2; /*如果在当前 i 的位置找到一对,则 i 越过 b 个字母*/ } else i++; /*如果在当前 i 的位置未找到,则 i 指向下一个字母*/ } printf(\ getch(); } 27.从键盘输入 10 个字符串,找出一个最长的字符串。 #include\ main() { char str[10][80]; /*设置二维字符数组,每一维可以记录最大79个字符的字符串*/ int i,len,k[10],n=0,max=0; printf(\ for(i=0;i<10;i++) /*向 str 数组输入 10 个字符串*/ { printf(\ gets(str[i]); len=strlen(str[i]); /*计算输入之字符串之长度*/ if(len>max){max=len;n=0;k[n]=i;} /*记录最长字符串的长度、个数、在数组位置(行)*/ else if(len==max)k[++n]=i; /*与已记录最大长度相同时,记录其在数组中位置(行)*/ } if(n==0) /*此时说明只有一个最大长度字符串,是 str[k[0] */ { printf(\输出其序号*/ puts(str[k[0]]); } else /*此时说明有不止一个最大长度字符串时需要处理的复合语句*/ { printf(\ for(i=0;i<=n;i++) /*分别输出各序号、字符串*/ { printf(\ puts(str[k[i]]); } } getch(); } 28.已知数组 a 中有 m 个按升序排列的元素,数组 b 中有 n 个按降序排列的元素,编程将 a 与 b 中的所有元素按降序存入数组 c 中。 【提示】将 a 中的元素最大值与 b 中元素最大值相比,将最大值存入 c 数组中,然后调整 c 、a 或 b 元素指针(地址),依次重复前序工作,即可。 #define M 3 #define N 7 main() { int i=0,j=0,n=0,c[M+N],a[3]={10,27,543},b[7]={300,210,173,96,55,34,13}; int maxa,maxb; do { maxa=a[M-i-1];maxb=b[j]; if(maxa>maxb) { c[n++]=maxa; /*将 a 中最大元素赋值给 c 数组当前元素,并调整 c 新元素位置*/ i++; /*调整 a 中元素位置*/ } else { c[n++]=maxb; /*将 a 中最大元素赋值给 c 数组当前元素,并调整 c 新元素位置*/ j++; /*调整 b 中元素位置*/ } printf(\打印输出 c 中新赋值元素数据*/ }while(n 第八章 1.指针变量初始化。 #include
C语言程序设计经典题目大汇总(9)
2019-08-03 12:22
C语言程序设计经典题目大汇总(9).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!