C语言复习题(3)

2019-08-26 17:55

char s1=”AbcdEf”,s2=”aB”; s1++; t=(strcmp(s1,s2)>0); print(“%d\\n”,t)

26. 下面程序段的运行结果是 。 char *p=”PDP1-0”; int I,d;

for(I=0;I<7;I++) {d=isdigit(*(p+ii));

if(d!=0) printf(“%c *(p+I)); }

27. 当运行以下程序时,从键盘输入 book book

(表示回车, 表示空格),则下面程序段运行的结果是 。 char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1);gets(s2);

if(!strcmp(s1,s2)) printf(“*”): else printf(“#”);

printf(“%d”,strlen(strcat(s1,s2))); 28. 若已定义: struct num {int a; int b; float f; } n={1,3,5.0};

struct num * pn = &n;

则表达式 (*pn).a+pn->f的值是 。

29. 在C语言中,&运算符作为双目运算符时表示的是 运算.

30. 在C语言中,文件的存取是以字符为单位的,这种文件被称作 文件。

三、编程题:

1.将一个字符串的内容颠倒过来。 2. 求整形数组的最大值。

3. 求字符串的长度(不用strlen)。

4. 编写程序,将字符串str中的所有字符’k’删除。

5.找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二维数组也可能没有鞍点。

6.a是一个2*4的整型数组,且各元素均已赋值.函数max_value可求出其中的最大元素值max,并将此值返回主调函数.今有函数调用语句max=max_value(a);请编写max_value函数. 7. 设计函数,实现字符串连接操作(不使用strcat)。

8. 以下程序的功能是应用下面的近似公式计算e的n次方.函数f1用来计算每项分子的值,函数f2用来计算每项分母的值.请编写f1和f2函数. ex=1=x=x2\\2!+x3\\3!?(前20项的和)

9. 从键盘上输入若干个学生的成绩,计算出平均成绩,并输出不及格的成绩和人数。

11

10.设计函数,在二维数组中产生如下形式的扬辉三角形。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1 ······

11. 回文是从前向后和从后向前读起来都一样的句子。写一个函数,判断一个字符串是否为回文,注意处理字符串中有中文也有西文的情况。 12.约瑟夫环问题:编号为1,2,3,···,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。

参考答案

一、选择题

1. B 2.D 3.A 4.D 5.A 6.A 7.B 8.C 9.A 10.A 11.B 12.B 13.D 14.D 15.D 16.A 17.D 18.C 19.D 20.D 21.C 22.C 23.B 24.D 25.C 26.B 27.A 28.A 29.D 30.A 31.C 32.B 33.B 34.D 35.C 36.D 37.C 38.D 39.B 40.B 41.B 42.A 43.A 44.A 45.B 46.D 47.A 48.B 49.C 50.C 51.B 52.D 53.C 54.A 55.C 56.C 57.A 58.A 59.C 60.B 61.C 62.A 63.A 64.C 65.C 二、填空题 1.函数 2. 1 3. 9 4. 4 5.单精度型、双精度型、整型、字符型和枚举型 6.双精度型(或:doubLe型) 7.3.500000,3.5 8. 31.415920,3.14159e+01 9.end 10.非0的数字 11.1 12.c!='\\n' 13.36 14.3 15.3 16.5 17.i*m+j+i 18.按行主顺序存放 19.函数说明部分和函数体 20.5 10 9 21.2400 22.12 23.x=8,y=5 24.hELLO! 25.1 26.1*0* 27.#9 28.6.0 29.按位与 30.流式

三、编程题

1. 解:注意交换位置的控制方法,参考程序如下:

#include #include

void change(char str[]) { int len,i,j; char c;

len=strlen(str);

for (i=0,j=len-1;i

str[i]=str[j]; str[j]=c; } }

main()

12

{ char str[80];

printf(\ gets(str); change(str);

printf(\

}

2.解:参考程序如下:

#include int max(int a[],int n) { int i,mx; mx=a[0];

for (i=1;i

if (a[i]>mx) mx=a[i]; return mx; }

main()

{ int a[8]={23,4,6,12,33,55,2,45}; printf(\}

3.解:参考程序如下:

#include int strlen(char str[]) { int i;

for (i=0;str[i]!='\\0';i++); return i; }

main()

{ char str[80];

printf(\ gets(str);

printf(\}

4. 解:将从字符串中删除所有字符’k’ 的功能定义为函数。参考程序如下:

#include

void delchar(char str[],char c) { int i,j;

for (i=0,j=0;str[i]!='\\0';i++) if (str[i]!=c) str[j++]=str[i]; str[j]='\\0'; }

main()

{ char str[80]; int i,j;

13

gets(str);

delchar(str,'k'); puts(str);

}

5.解:依鞍点定义,对数组每行元素循环,找到当前行上最大元素,记下所在的列号,再判断此元素是否为对应列的最小元素。将寻找打印数组鞍点的操作定义为函数,如果没有鞍点,函数返回-1。参考程序如下:

#include #define N 10 #define M 10

int andian(int a[][M],int n,int m) { int i,j,k,max,maxcol;

int flag1,flag2=0; /*flag1标记每一行的最大值是否鞍点,flag2标记矩阵是否有鞍点*/

for (i=0;i

for (j=1;jmax)

{ max=a[i][j];maxcol=j;} for (k=0,flag1=1;k

if (flag2==0) return -1; }

main()

{ int i,j,n,m,a[N][M];

printf(\ scanf(\

printf(\ for (i=0;i

scanf(\ printf(\ for (i=0;i

printf(\ printf(\ }

14

if (andian(a,n,m)==-1)

printf(\

}

6. max_value(int arr[][4]) { }

max(int arr[ ][4]) {int I,j, max; max=arr[0][0]; for(i=0;i<2;i++) for(j=0;j<4;j++)

if(arr[i][j]>max)max=arr[i][j]; return(max); }

7. 解:注意结束字符的判断和处理,目标字符串的长度应足够长。参考程序如下:

#include

void scat(char s1[],char s2[]) { int i,j;

for (i=0;s1[i]!='\\0';i++); for (j=0;s2[j]!='\\0';j++) s1[i++]=s2[j]; s1[i]='\\0'; }

main()

{ char s1[80]=\ char s2[10]=\ scat(s1,s2);

printf(\}

8. ex=1=x=x2\\2!+x3\\3!?(前20项的和) float f2(int n) { }

float f1(int x,int n) { }

main()

{ float exp=1.0;int n,x;

printf(“Input a number:”)’

scanf(“%d”,&x); printf(“%d\\n”,x); exp=exp+x;

for(n=2;n<=19;n++) exp=exp+f1(x,n)/f2(n); printf(“\\nThe is exp(%d)=%8.4f\\n”,x,exp)’ }

15


C语言复习题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工组织设计

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

马上注册会员

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