模拟题c语言答案

时间:2019-05-12 01:40:00下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《模拟题c语言答案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《模拟题c语言答案》。

第一篇:模拟题c语言答案

此答案为自己所出,若有不对之处请谅解,并希望能留言

单选题(共60题,每题1分,共60分)1.下列符号串中,属于C语言合法标识符的个数为(B)。

_1_2_3,a-b-c,float,9cd,a3b4

A:1

B:2

C:3

D:4 2.下列能为字符变量 a 赋值的是:char a=(C)。

A:'ab'

B:“a”

C:''

D:“” 3.在下列字符序列中,合法的标识符是(B)。

A:P12.a

B:stud_100

C:$water.1

D:88sum 4.下列用于printf函数的控制字符常量中,代表tab的字符常量是(B)。

A:'b'

B:'t'

C:'r'

D:'f' 5.下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。

A:'b'

B:'t'

C:'r'

D:'n' 6.如有以下程序:unsigned int a=6;int b=-20;char c;c=(a+b>6);则c的值为(C)。(int转换为unsigned)

A:6

B:-14

C:1

D:0 7.关于C语言,以下不正确的叙述是(B)。

A:在C语言程序设计中,逗号运算符的优先级最低

B:在C语言程序设计中,var和VAR是两个相

同的变量

C:C语言也支持重载

D:此处的两个语句int a;a=-13.06;在程序编译中将会提示出错 8.若有定义: int a=2,*p;float x=1, y=2;char e=‘w’;

则以下用法不正确的是(B)。

A:printf(“%c”,e+a);

B:p=&x;

C:a *=y+x;

D:x=y=e;9.int x=20;printf(“%dn”,~x);以上程序片段的输出是(B)。

A:235

B:-21

C:-20

D:-11 10.在C语言中,要求运算数必须是整型的运算符是(D)。

A:/

B:++

C:!=

D:% 11.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(结果保留两位小数)(A)。

A:2.50

B:2.75

C:3.50

D:0.00 12.以下运算符中优先级最低的是(C)。

A:&&(第三)

B:&(第一)

C:||(第四)

D:|(第二)

13.设有定义语句:char c1=1,c2=1;,则以下表达式中值为零的是(A)。

A:c1^c2

B:c1&c2

C:~c2

D:c1|c2 14.以下程序的输出结果是

#include void main(){

unsigned char a,b;

a=0x0a|3;

b=0x0a&3;

printf(“%d %dn”,a,b);}(B)。

A:2 11

B:11 2

C:7 13

D:13 7 15.如果int i = 4, 则printf(“%d”,-i--)结果是__,i的值是。(A)

A:-4 3

B:-3 3

C:-3 4

D:-4 4 16.若x=2,y=3则x&y的结果是(B)。

A:1

B:2

C:3 的输出

D:5 17.下列程序的输出是(B)。main(){int x;printf(“%dn”,(x=3*5,x*2,x+10));}

A:15

B:25

C:30

D:40 18.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为(C)。x=(i=4,j=16,k=32)

A:4

B:16

C:32

D:其他值

19.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)。

A:7

B:8

C:6

D:2

20.以下程序运行后的输出结果是(A)。main(){int a,b;a=50;b=90;printf(“%dn”,(a,b));}

A:90

B:50 90

C:50

D:其他

21.以下程序的运行结果是(A)。void main(){

int a=4;char ch=‘a’;

printf(“%dn”,(a&2)&&(ch>‘A’));}

A:0

B:1

C:2

D:3 22.以下程序的输出是(D)。#include

main()

{ int i,j=4;

for(i=j;i<=2*j;i++)switch(i/j){ case 0 :

case 1: printf(“*”);break;

case 2: printf(“#”);break;} }

A:*###

B:**##

C:***#

D:****# 23.有如下程序片段: int i = 0;while(i++ <= 2);printf(“%d”, i--);则正确的执行结果是(C)。

A:2

B:3

C:4

D:以上都不是 24.有以下程序段 main(){ int i=1,sum=0,n;

scanf(“%d”,&n);do { i+=2;sum+=i;}while(i!=n);printf(“%d”,sum);} 若使程序的输出值为15,则应该从键盘输入的n的值是(D)。

A:1

B:3

C:5

D:7 25.以下程序的输出是(A)。

#include void fun(int *p){

int a=10;

p=&a;

++a;} void main(){

int a=5;

fun(&a);

printf(“%dn”,a);}

A:5

B:6

C:10

D:11 26.以下关于函数的说法中正确的是(C)。

A:定义函数时,形参类型说明可放在函数体内

B:return语句后边的值不能为表达式

C:如果函数类型与返回值类型不一致,以函数类型为准

D:如果形参与实参的类型不一致,以实参为准

27.已知有定义:int *p();则以下说法正确的是(C)。

A:指向int型的指针变量

B:int型的指针数组

C:一个函数,该函数的返回值是指向int型的指针变量

D:一个指向函数的指针变量,该函数的返回值为int型

28.若有如下程序: void s(char *m,int n){

*m=*m+3;n=n+3;

printf(“%c,%c,”,*m,n);} void main(){

char p=‘b’,q=‘B’;

s(&q,p);

printf(“%c,%cn”,p,q);}则程序运行后的输出结果是(A)。

A:E,e,b,E

B:e,E,b,F

C:E,e,e,E

D:e,E,b,E 29.C语言规定函数返回值的类型由(A)。

A:在定义时所指定的函数类型所决定

B:调用该函数时的主调函数类型所决定

C:return语句中的表达式类型所决定

D:调用该函数时系统临时决定

30.要在c语言中求正弦30度的值,可以调用库函数,可用格式为(D)。

A:sin(30)

B:sin(30.0)

C:sin((double)30)

D:sin(3.1415/6)31.在C语言程序设计中,简单变量作为实参时,它和对应形参之间的数据的传递方式是(B)。

A:地址传递

B:单向值传递

C:由实参传给形参,再由形参传给实参

D:由用户指定传递方式 32.以下程序的输出为(C)。int a=2;int f(int *a)

{

return(*a)++;} void main(){

int s=0;

{int a=5;

s+=f(&a);

}

s+=f(&a);

printf(“%d %dn”,a,s);}

A:2 7

B:2 10

C:3 7

D:3 11 33.以下程序输出结果是(D)。#include int *fun(){ int a[4],k;for(k=0;k<4;k++)a[k]=k;

return(a);} void main(){ int *p,j;p=NULL;p=fun();for(j=0;j<4;j++){printf(“%dn”,*p);p++;} }

A:输出0 0 0 0

B:输出0 1 2 3

C:输出1 1 1 1

D:输出不确定值 34.以下程序的运行结果是(D)。void fun(int *n){

static int m=2;

*n*=m-1;m+=2;} void main(){

static int m=1;

int i;

for(i=1;i<4;i++)

fun(&m);

printf(“%dn”,m);}

A:8

B:10

C:11

D:15 35.下面对typedef的叙述中不正确的是(B)。

A:用typedef可以定义各种类型名,但不能用来定义变量

B:typedef和#define都是在预编译时处理的

C:用typedef只是将已存在的类型用一个新的标识符来代表

D:使用typedef有利于程序的通用和移植 36.要使用内存分配函数malloc,需要引入的头文件是(BC)。

A:stdio.h

B:stdlib.h

C:malloc.h

D:memory.h

37.以下宏定义中,不会引起二义性的宏个数为(A)。1)#define POWER(x)x*x 2)#define POWER(x)(x)*(x)3)#define POWER(x)(x*x)4)#define POWER(x)((x)*(x))(没有二义性)

A:1个

B:2个

C:3个

D:4个

38.若有二维数组定义语句:int a[4][5];则下面对元素a[2][3]不正确的引用方式是(B)。

A:*(&a[2][3])

B:*(a+5*2+3)可以换为(&a[0][0]+5*2+3)

C:*(a[2]+3)

D:*(*(a+2)+3)39.若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为(B)。(不知怎么下面是m,应该是n把,不清楚!)

A:j*m+i

B:i*m+j

C:i*m+j-1

D:j*m+i-1

40.有字符数组a[10]={‘A’,‘’}和b[10]={‘B’},则以下正确的输出语句是(D)。

A:puts(a,b);

B:printf(“%s %sn”,a[],b[]);

C:putchar(a,b);

D:puts(a);puts(b);41.下列程序的输出结果是(D)。#include #include void main(){

char p1[20]=“abcd”,p2[20]=“ABCD”;

char str[50]=“xyz”;

strcpy(str+2,strcat(p1+2,p2+1));

printf(“%sn”,str);}

A:xyabcAB

B:abcABz

C:Ababcz

D:xycdBCD 42.以下程序执行后输出结果是(C)。void main()

{

char a[]=“movie”,b[10]=“movie”;

printf(“%d %dn”,sizeof(a),sizeof(b));}

A:5 5

B:6 6

C:6 10

D:10 10 43.以下程序的输出结果是(A)。void main(){

char *p[10]={“abc”,“aabdfg”,“dcdbe”,“abbd”,“cd”};

printf(“%dn”,strlen(p[4]));}

A:2

B:3

C:4

D:编译出错 44.已知有以下的说明,int a[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为(B)。

A:5

B:0

C:4

D:7 45.以下程序输出结果是(B)。#include main(){

int a[2][2]={1,2,3,4},(*p)[2];

p=a;

p++;

printf(“%dn”,**p);}

A:2

B:3

C:4

D:以上都不对

46.设char ch,str[4],*strp;,则正确的赋值语句是(C)。

A:ch=“CBA”;

B:str=“CBA”;

C:strp=“CBA”;

D:*strp=“CBA”;47.下面程序的运行结果是(C)。#include #include fun(char *w,int n){char t,*s1,*s2;s1=w;s2=w+n-1;while(s1

A:7654321

B:1714171

C:1711717

D:7177171 48.以下程序的输出是(C)。#include

main(){ char a[]=“language”,*p;p=a;while(*p!=‘u’){ printf(“%c”,*p-‘u’+‘U’);p++;} }

A:LANGUAGE

B:language

C:LANG

D:LANGuage 49.struct s1 {

char a[3];

int num;}t={‘a’,‘b’,‘x’,4},*p;p=&t;则输出为x的语句是(B)。

A:printf(“%cn”,p->t.a[2]);

B:printf(“%cn”,(*p).a[2])

C:printf(“%cn”,p->a[3]);

D:printf(“%cn”,(*p).t.a[2]);

50.以下程序的输出是(D)。#include main(){

struct st

{int x;

int y;

}cnum[2]={1,3,2,7};

printf(“%dn”,cnum[0].y/cnum[0].x*cnum[1].x);}

A:0

B:1

C:3

D:6 51.以下对age的非法引用是(B)。struct student {int age;

int num;}stu1,*p;p=&stu1;

A:stu1.age

B:student.age

C:p->age

D:(*p).age 52.以下程序的输出是(B)。#include union myun {struct {int x,y,z;}u;int k;}a;void main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%dn”,a.u.y);}

A:4

B:5

C:6

D:0 53.若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式字符串应是(C)。

A:“ab+”

B:“rb+”

C:“wb+”

D:“ab” 54.若执行fopen函数时发生错误,则函数的返回值是(B)。

A:地址值

B:0

C:1

D:EOF 55.要打开文件c:usertext.txt用于追加数据,正确的语句是(C)。

A:fp=fopen(“c:turboc2abc.txt”,“r”);

B:fp=fopen(“c: urboc2abc.txt”,“r”);

C:fp=fopen(“c: urboc2abc.txt”,“a+”);

D:fp=fopen(“c:turboc2abc.txt”,“a+”);56.在执行fopen函数时,ferror函数的初值是(D)。

A:TRUE

B:-1

C:1

D:0

57.#include main(){

char * s1=“Hello”,*s2=“Beijing”;

FILE *pf=fopen(“abc.dat”,“wb+”);

fwrite(s2,7,1,pf);

fseek(pf,-1,SEEK_CUR);

fwrite(s1,5,1,pf);

fclose(pf);} 以上程序执行后,文件abc.dat中的内容为(C)。

A:Hellong

B:Beijing Hello

C:BeijinHello

D:Hello 58.若fp为文件指针,且文件已正确打开,i为整型数据,以下语句的输出结果是(B)。fseek(fp,0,SEEK_END);i=ftell(fp);printf(“i=%dn”,i);

A:fp所指的文件记录长度

B:fp所指的文件长度,以字节为单位

C:fp所指的文件长度,以比特为单位

D:fp所指的文件当前位置,以字节为单位 59.函数调用语句:fseek(fp,-20L,2);的含义是(C)。

A:将文件位置指针移到距离文件头20个字节处

B:将文件位置指针从当前位置向后移动20个字节

C:将文件位置指针从文件末尾处后退20个字节

D:将文件位置指针移到离当前位置20个字节处

60.若将文件指针的读写位置指针移动到距离文件头200个字节的位置,对应正确的操作是(A)。

A:fseek(fp, 200, SEEK_SET)

B:fseek(fp, 200, SEEK_CUR)

C:fseek(fp, 200, SEEK_END)

D:ftell(200)

第二篇:C语言模拟题总集

1. C语言源程序的基本单位是(函数)

2. 若有以下数组a,数组元素:a[0]~a[9],其值为 4 12 8 2 10 7 5 1 改数组中下标最小的元素名字是()

3. 按内存排列顺序,数组char a[2]中的所有元素是a[1]和(a[0])4. 设x=5〉1+2,x的值为()5. 设有以下定义的语句:

int a[3][2]={10,20,30,40,50,60},(*p)[2];p=a;则*(*(p+2)+1)值为(60)6. 调用fopen函数打开一文本文件,在使用方式这一项中,为输出而打开需填入(w或w+)7. 执行下列语句后,*(p+1)的值是(b)

char s[3]=”ab”,*p;P=s;8. 函数的(递归)调用时一个函数直接或间接地调用它自身 9. Int x;x=-3+4%-5*3,则x的值是(9)10. 当a=3,b=2,c=1;时,执行以下程序后c=(2)if(a>b)a=b;if(b>c)b=c;else c=b;c=a;判断

1.一个include命令可以指定多个被包含的文件

错 2.若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f””,&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=”A”,f=12.5

3.进行宏定义时,宏名必须使用大写字母表示

4.整数-32100可以赋值给int型和long int 型变量

5.在程序中定义了一个结构类型后,可以多次用它来定义具有该类型的变量

对 6.函数strlen(“ASDFGN”)的值是7

7.通过return语句,函数可以带回一个或一个以上的返回值

错 8.若有说明int c;则while(c=getchar());是正确的c语句

9.C语言中只能逐个引用数组元素而不能一次引用整个数组

10.在c语言环境中,此定义和语句是合法的: enum aa{a=5,b,c}bb;bb=(enum aa)5;

对 11.共同变量所占的内存长度等于最长的成员的长度

12.在Turbo C 中,下面的定义和语句是合法的: file *fp;fp=fopen(“a.txt”,”r”);

错 13.Char *p=”girl”;的含义是定义字符型指针变量p,p的值是字符串“girl“

错 14.若有定义和语句: int a[3][3]={{3,5},{8,9},{12,35}},I,sum=0;

for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21

15.Int i=20;switch(i/10){case 2:printf(“A”);case 1 :printf(“B”);} 的输出结果是

AB

单选 16.Int i=20;switch(i/10){case 2:printf(“A”);case 1 :printf(“B”);} 的输出结果是

AB 1.变量p为指针变量,若p=&a,下列说法不正确的事()

A 2.函数ftell(fp)的作用是()

A

3.函数ftell(fp)的作用是()

A 4.下列变量说明语句中,正确的是()

D

5.在c语言的函数中,下列说法正确的是()

C

6.Fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()

C

7.在位运算中,操作数每右移一位,其结果相当于()

B

XILIE Fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(8.A

A

填空

1.Int a=1,b=2,c=3;执行语句a += b *= c;后a的值是7。

2.若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3,该数组可用的最小下标值是a[0]

3.C语言的三种基本结构是(顺序)结构,选择结构,循环结构 4.Int x=2,y=3,z=4;则表达式x+y〉z的值为(0)

5.为了避免嵌套条件语句的二义性,c语言规定else与其前面最近的(if)语句配对 6.以下程序的输出结果为(9,10)#include “stdio。h” main(){int a=010,j=10; printf(“%d,%d、n”,++a,j--);} 7.在c语言中,文件的存取是以(字节)为单位的,这种文件被称为(流式文件)文件 8.若有以下定义和语句:int a[5]={1,3,5,7,9},*p;p=&a[2];则++(*p)的值是(6)9.Static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为(6)10.执行下列语句后,*(p+1)的值为(1)char s[3]=“ab”,*p;p=s; 判断

1.#define和printf都不是c语句X 2.int i=20;switch(i/10){case 2:printf(“A”);Case 1:printf(“B”)}的输出结果为AX 3.在c语言中,此定义和语句是合法的:enum aa{ a=5,b,c}bb=(enum aa)5;√ 4.若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;〈i3;i++ sum+=a[i][2-i]; 则sum=21 5.char c[]=“very good”;是一个合法的为字符串数组赋值的语句√ 6.共同体变量所占的内存长度等于最长的成员的长度√ 7.函数strlen(“ASDFGn”)的值是7X 8.c语言中只能逐个引用数组元素而不能一次引用整个数组√ 9.如果函数值的类型和return语句中表达式ide值不一致,则以函数类型为准√ 10.用fopen(“file”,“r+”);打开的文件“file”可以进行修改X 11.char *p=“girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”X 12.结构体类型只有一种X 13.在turbo c中,整型数据在内存中占2个字节X 14.c程序中有调用关系的所有函数必须放在同一个源程序文件中X。15.若有说明int c;则while(c=getchar());是正确的c语句√ 单选

1.指针变量p进行自加运算(即执行p++;)后,地址偏移值为2,则其数据类型为(A)

2.函数ftell(fp)的作用是()3.在位运算中,操作数每右移一位,其结果相当于(B)

4.C语言程序中,当调用函数时(A)

5.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(B)

6.char *math(char c)是(B)

7.以下不符合c语言语法的赋值语句是(C)

8.以下不是无限循环的语句为(A)

9.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(A)

10.在执行fopen函数时,ferror函数的初值是(D)

填空 假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(8)函数调用语句func((e1,e2),(e3,e4,e5))中含有[ ]个实参3 执行语句char str[81]=”abcdef”;后,字符串str结束标志存储在str[ [6] ] 4 在C语言中,最大整型数是[32767 ] 5 以下程序的输出结果为[10],#include”stdio.h”main(){int a;for(a=0;a<10;a++);printf(“%d”,a);} 6设啊取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的二进制数是[11110000

] 7 C语言源程序的基本单位是[函数 ] 8 设I,j,k均为int型变量,则执行完下面的for循环后,k的值为[10]。For(i=0,j=10;i<=j;i++,j--)k=i+j 9 int x=2;x*=y=z=4;则x的值为[8 ] 10 预处理命令行都必须以[ #]号开始

判断 一个include 命令可以指定多个被包含的文件

错 2 int i,*p=&i;是正确的C说明

对 3 若有int i=10, j=0;则执行完语句

错 If(j=0)i++;else i--;i的值为11 4 在Turbo C中,下面的定义和语句是合法的:

错 File *fp;fp=fopen(“a.txt”,”r”)5 int a[3] [4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。

对 进行宏定义时,宏名必须使用大写字母表示。

错 通过return语句,函数可以带回一个或一个以上的返回值。

错 8 在程序中定义了一个结果体类型后,可以多次用它来定义具有该类型的变量。

对 共同体变量所占的内存长度等于最长的成员的长度

对 10 用fopen(“file”,”r+”);打开的文件”file”可以进行修改

单选 以下对二维数组a的正确说明是(c)A int a[3] [ ] B float a(3,4)C double a[1][4] D float a(3)(4)2 C语言允许函数类型缺省定义,此时函数值隐含的类型是(B)A float B int C long D double 3设有定义:int N=0,*P=&N,**q=&p;则以下选项中,正确的赋值语句是(D)A p=1 B *q=2 C q=p D *p=5 4 C语言中要求对变量作强制定义的主要理由是(D)A 便于移植 B 便于写文件

C 便于编辑预处理程序的处理 D 便于确定类型和分配空间 5 位字段数据vd单位是()位 A 十六进制 B 八进制 C 二进制 D 十进制 以下程序的输出结果是(D)main(){int

i,j,k,a=3,b=2;I=(--a==b++)?---a:++b;J=a++;k=b;Printf(“i=%d,j=%d,k=%dn”,I,j,k);} A i=2,j=1,k=3 B i=1,k=1,k=2 C i=4,j=2,k=4 D i=1,j=1,k=3 7 char *s1=”hello”,*s2;s2=s1;则(C)A s2指向不确定的内存单元 B 不能访问”hello”

C puts(s1);与puts(s2);结果相同 D s1不能再指向其它单元 函数调用语句:fseek(fp,-20l,2);的含义是()A 将文件位置指针移到距离文件头20个字节处 B 将文件位置指针从当前位置向后移动20个字节 C 将文件位置指针从文件末尾处退后20个字节 D 将文件位置指针移到离当前位置20个字节处 已知p,p1为指针变量,a为数组名,j为整型变量,下了赋值语句中不正确的是(D)。A a=&j,p=p1;B p=a;C p=&a[j];D p=10;10在执行fopen函数时,ferror函数的初值是(D)A TRUE B-1 C 1 D 0

填空 若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 该数组中下标最大的元素是a2

2下列程序的运行结果是(65535),main(){unsigned x1;int b=-1;x1=b;printf(“%u”,x1);} 3int x;x=-3+4%5-6,则x的值为(-5)

4已知 a=10,b=15,c=1,d=2,e=0,则表达式!a〈e的值为(0)5在C语言中,最大整数是()

6若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是(3)C=(a-=(b-5));C=(a%11)+(b=3);7C语言中,数组名是一个不可变的(指针常)量,不能对它进行加减和赋值运算 8定义

int a[2][3];表示数组a中的元素个数是(6)各 9a=10;b=0;do {b+=2;a-=2+b;} while(a>=0)执行几次3 10执行语句char s[3]=”ab”,*p;p=3;*(p+2)的值是(‘/0’)判断

1#define和printf都不是C语句 ✘ 2结构体类型只有一种

3如果函数值的类型和return语句表达式的值不一致,则以函数类型为准 ✔ 4用fopen(“file”,“r+”);打开的文件 file 可以进行修改✔ 5int i,*p=&i;是正确的C说明✔ 6若有 int i=10,j=0;则执行完语句 if(j=0)i++;else i--;i的值为11 ✘ 7C程序中有调用关系的所有函数必须放在同一个原程序文件中 ✘ 8char *p=“girl”;的含义是定一字符型指针变量p,p的值是字符串“girl” ✘ 9 int a[3][3]={{3,5},{8,9},{12,35}},I,sum=0 For(i=0;I<3;i++)sum+=a{i}{2-i};sum=21

10在 Turbo C中 file *fp=fopen(a.txt,r);是合法的✘ 单选 一下运算等级最低的 A&& B& C| | D|

c 2若以“A+”方式打开一个以存在的文件,正确的事

a A原有文件不删除,位置指针移到文件末尾,可作添加和读操作

B原有文件不删除,位置指针移到文件开头,可作重写和读操作

C原有文件删除,只可作写操作 D都不正确

3对结构体类型的变量的成员的访问,无论数据类型如何都可使用a

4main(){int i=010,j=10;printf(“%d”,%dn,++I,j--);}结果

b

5利用 fseek函数可以实现的操作a

6设一下变量未int类型,则值不等于7的是a

7不正确的b double类型数据占d

在C语言程序中

b

10不正确的填空

1. 以下do-while语句中循环体的执行次数是(1)a=10 b=0

do { b+=2;a-=2+b;} while(a>=0);2字符串长度的库函数是[1],只写

3行下面两个语句,输出的结果是[1],char 4语言中调用[fopen]函数来打开文件

5若a是int型变量,且a的初值为6,则执行下面表达式后a的值为。a+=a-=a*a-60 6有定义:int a=10 7有定义:char s [ ] =

则TurboC 系统为数组s开辟[ 6] 个字节的内存单元

8若有以下定义和语句: int a[5]={1,3,5,7,9},*p;p=&a[2];则++(*p)的值是__6__.判断

1有宏定义:#define S(a,b)……所以此宏定义是错误的错 2构体类型只有一种

错 3有定义和语句:int。。。则sum=21

4果函数值的类型和return语句。。则以函数类型为准

对 5果想使一个数组中全部元素为0 可以写成int a[10]={0*10};

错 6加位运算的数据可以是任何类型的数据

错 7ar *p= girl。。。p的值是字符串 girl

对 8efine和printf 都不是C语句

对 单选

1位计算中,操作数每右移一位。。

B

2执行下列语句后,a和b的值分别为()

B 3fseek函数的正确调用形式是()B

4下列

确的事

(C

5char *match(char c)是B

6若有说明:

int

a

[3][4]=

。。正确的叙

述D)

是7为了提高程序的运行速度,在函数。。。的变量

8以下程序的输出结果是()D

【程序填空】

--------------------------

功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出

其和。

------------------------*/

#include #include main(){

int i,n,sum;

sum=0;

/***********SPACE***********/

B

D

n=0;

/***********SPACE***********/

for(i=1;i<=300;i++)

/***********SPACE***********/

if(i%7 == 0 || i%17 == 0)

if(i%2==0)

{

sum=sum+i;

n++;

printf(“%6d”,i);

/***********SPACE***********/

if(n%5 == 0)

printf(“n”);

}

printf(“ntotal=%d”,sum);}

2./*------------------------【程序填空】

--------------------------

功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1

到3报数),凡报到3的人退出圈子,问最后留下的是原来

第几号的那位。

------------------------*/ #include #define nmax 50 main(){

int i,k,m,n,num[nmax],*p;

printf(“please input the total of numbers:”);

scanf(“%d”,&n);

p=num;

/***********SPACE***********/

for(i=0;i

/***********SPACE***********/

*(p+i)=i+1;

i=0;

k=0;

m=0;

while(m

{

/***********SPACE***********/

if(*(p+1)!=0)k++;

if(k==3)

{

*(p+i)=0;

k=0;

m++;

}

i++;

if(i==n)i=0;

}

/***********SPACE***********/

while(*p==0)p++;

printf(“%d is leftn”,*p);}

程序改错

/*-----------------------

【程序改错】

-------------------------

功能:求1到10的阶乘的和。

-----------------------*/ #include main(){

int i;

float s=0;

float fac(int n);

/**********FOUND**********/

for(i=1;i<=10;i++)

/**********FOUND**********/

S+=fac(i);

printf(“%fn”,s);} float fac(int n){ /**********FOUND**********/ float y=1;

int i;

for(i=1;i<=n;i++)

y=y*i;

/**********FOUND**********/

Return y;}

程序填空

1.功能:计算一元二次方程的根。

------------------------*/

#include /***********SPACE***********/ #include main(){

double x1,x2,imagpart;

float a,b,c,disc,realpart;

scanf(“%f%f%f”,&a,&b,&c);

printf(“the equation”);

/***********SPACE***********/

if(a<=1e-6)

printf(“is not quadraticn”);

else

disc=b*b-4*a*c;

if(fabs(disc)<=1e-6)

printf(“has two equal roots:%-8.4fn”,-b/(2*a));

/***********SPACE***********/

else if(disc>0)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf(“has distinct real roots:%8.4f and %.4fn”,x1,x2);

}

else

{

realpart=-b/(2*a);

imagpart=sqrt(-disc)/(2*a);

printf(“has complex roots:n”);

printf(“%8.4f=%.4fin”,realpart,imagpart);

printf(“%8.4f-%.4fin”,realpart,imagpart);

} } 2.功能:利用全局变量计算长方体的体积及三个面的面积。

------------------------*/ #include int s1,s2,s3;int vs(int a,int b,int c){

int v;

/***********SPACE***********/

v=a*b*c;

s1=a*b;

/***********SPACE***********/

s2=b*c;

s3=a*c;

return v;}

main(){

int v,l,w,h;

printf(“ninput length,width and height: ”);

/***********SPACE***********/

scanf(“%d%d%d”,&l,&w,&h);

/***********SPACE***********/

v=vs(l,w,h);

printf(“v=%d

s1=%d

s2=%d

s3=%dn”,v,s1,s2,s3);} 程序改错

功能:用起泡法对10个整数从小到大排序。

-----------------------*/

#include /**********FOUND**********/ void sort(int x,int n){

int i,j,t;

for(i=0;i

/**********FOUND**********/

for(j=0;j

/**********FOUND**********/

if(x[i]>x[i+1])

{

t=x[j];

x[j]=x[j+1];

x[j+1]=t;

} }

main(){

int i,n,a[100];

printf(“please input the length of the array:n”);

scanf(“%d”,&n);

for(i=0;i

scanf(“%d”,&a[i]);

/**********FOUND**********/

sort(n,a);

printf(“output the sorted array:n”);

for(i=0;i<=n-1;i++)

printf(“%5d”,a[i]);

printf(“n”);}

【程序填空】

--------------------------

功能:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显

示出来。

------------------------*/ #include #define M 5

/*定义符号常量 人数为5*/ #define N 4

/*定义符号常量 课程为4*/

main(){

int i,j;

void aver(float sco[M+1][N+1]);

static float score[M+1][N+1]={{78,85,83,65}, {72,65,54,75},{86,88,75,60},{69,60,50,72}};

aver(score);

printf(“学生编号

课程1

课程2

课程3

课程4

个人平均n”);

for(i=0;i

{

printf(“学生%dt”,i+1);

{88,91,89,93},/***********SPACE***********/

for(j=0;j

printf(“%6.1ft”,score[i][j]);

printf(“n”);

}

for(j=0;j<8*(N+2);j++)

printf(“-”);

printf(“n课程平均”);

for(j=0;j

printf(“%6.1ft”,score[i][j]);

printf(“n”);}

void aver(float sco[][N+1])

{

int i,j;

/***********SPACE***********/

for(i=0;i

{

for(j=0;j

{

sco[i][N] += sco[i][j];

sco[M][j] += sco[i][j];

sco[M][N] += sco[i][j];

}

/***********SPACE***********/

sco[i][N]/= N;

}

for(j=0;j

/***********SPACE***********/

sco[M][j] /= M;

sco[M][N]=sco[M][N]/M/N;

}

2./*------------------------【程序填空】

--------------------------

功能:删除字符串中的数字字符。

例如:输入字符串:48CTYP9E6,则输出:CTYPE。

------------------------*/

#include /***********SPACE***********/ void fun(char*s)

{

char *p=s;

while(*p)

if((*p>='0')&&(*p<='9'))p++;

/***********SPACE***********/

else *s++=*p++;

/***********SPACE***********/

*s=’’

}

main(){

char item[100];

printf(“nEnter a string: ”);

gets(item);fun(item);

printf(“nThe string:”%s“n”,item);}

改错

/*-----------------------

【程序改错】

-------------------------

功能:用插入排序法将n个字符进行排序(降序)。

提示:插入法排序的思路是:先对数组的头两个元素进行排序,然后根据前两个元素的情况插入第三个元素,再插入第 四个元素…)。

-----------------------*/

#define N 81 #include #include

void fun(char *aa, int n){

/**********FOUND**********/

int a ,b,t;

for(a = 1;a

{

t = aa[a];b = a1;

/**********FOUND**********/

while((b>=0)and(t>aa[b]))

{

aa[b+1]=aa[b];b;}

/**********FOUND**********/

aa[b+1] = t

} }

main(){

char a[N];

printf(“nEnter a string: ”);

gets(a);

fun(a , strlen(a));

printf(“nThe string: ”);

puts(a);getch();}

程序填空 功能:百马百担问题:有100匹马,驮100担货,大马驮三担,中

马驮2担,两匹小马驮一担,求大、中、小马各多少匹?

------------------------*/

#include main(){

int hb,hm,hl,n=0;

/***********SPACE***********/

for(hb=0;hb<=100;hb+=3)

/***********SPACE***********/

for(hm=0;hm<=100-hb;hm+=2)

{

/***********SPACE***********/

hl=100-hb-hm;

/***********SPACE***********/

if(hb/3+hm/2+2*hl==100)

{

n++;

printf(“hb=%d,hm=%d,hl=%dn”,hb/3,hm/2,2*hl);

}

}

printf(“n=%dn”,n);} 2 功能:产生并输出杨辉三角的前七行。1 1 1 1 1 1

------------------------*/ #include main(){

int a[7][7];

int i,j;

for(i=0;i<7;i++)

{

a[i][0]=1;

/***********SPACE***********/

a[i][i]=1;;

}

for(i=2;i<7;i++)

/***********SPACE***********/

for(j=1;j

/***********SPACE***********/

a[i][j]= a[i-1][j-1]+a[i-1][j];

for(i=0;i<7;i++)

{

/***********SPACE***********/

for(j=0;j<=i;i++)

printf(“%6d”,a[i][j]);

printf(“n”);

} } 程序改错 功能:编写函数fun生成一个对角线元素为5,上三角元素为0,下三角元素为1的3*3的二维数组。

-----------------------*/

#include

fun(int arr[][3]){

/**********FOUND**********/

int i,j;

/**********FOUND**********/ for(i=0;i<3;i++)

for(j=0;j<3;j++)

/**********FOUND**********/

if(i==j)

arr[i][j]=5;

else if(j>i)

arr[i][j]=0;

else

arr[i][j]=1;}

main(){

int a[3][3],i,j;

fun(a);

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

{

for(j=0;j<3;j++)

printf(“%d ”,a[i][j]);

printf(“n”);

} }

【程序填空】

--------------------------

功能:求一个二维数组中每行的最大值和每行的和。------------------------*/

#include main(){

int a[5][5],b[5],c[5],i,j,k,s=0;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

a[i][j]=rand()%(40)+20;

for(i=0;i<5;i++)

{

/***********SPACE***********/

k=a[i][0];s=0;

for(j=0;j<5;j++)

{

/***********SPACE***********/

if(k

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

}

b[i]=k;

/***********SPACE***********/ c[i]=s;

}

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

/***********SPACE***********/

printf(“%5d”, a[i][j]);

printf(“%5d%5d”,b[i],c[i]);

printf(“n”);

} }

/*------------------------【程序填空】

--------------------------

功能:计算并输出high以内最大的10个素数之和,high由主函数传

给fun函数,若high的值为100,则函数的值为732。

------------------------*/

#include #include #include int fun(int high){

int sum = 0, n=0, j, yes;

/***********SPACE***********/

while((high >= 2)&&(n<10))

{

yes = 1;

for(j=2;j<=high/2;j++)

/***********SPACE***********/

if(0==high%j)

{

yes=0;

break;

}

if(yes)

{

sum +=high;

n++;

}

high--;

}

/***********SPACE***********/ return sum;

}

main(){

printf(“%dn”, fun(100));}

*-----------------------

【程序改错】

-------------------------

功能:有1、2、3、4个数字,能组成多少个互不相同且无重复数

字的三位数?都是多少?

-----------------------*/ #include main(){

int i,j,k;

/**********FOUND**********/

printf(“n”);

/**********FOUND**********/

for(i=1;i<5;i++)

for(j=1;j<5;j++)

for(k=1;k<5;k++)

{

/**********FOUND**********/

if(i!=k&&i!=j&&j!=k)

printf(“%d,%d,%dn”,i,j,k);

} }

第三篇:c语言答案

6-13

#include int main(){ char s1[80],s2[40];

int i=0,j=0;

printf(“input string1:”);

scanf(“%s”,s1);

printf(“input string2:”);

scanf(“%s”,s2);

while(s1[i]!='')

i++;

while(s2[j]!='')

s1[i++]=s2[j++];

s1[i]='';

printf(“nThe new string is:%sn”,s1);

return 0;}

6-14 #include int main(){ int i,resu;

char s1[100],s2[100];

printf(“input string1:”);

gets(s1);

printf(“ninput string2:”);

gets(s2);

i=0;

while((s1[i]==s2[i])&&(s1[i]!=''))i++;

if(s1[i]=='' && s2[i]=='')

resu=0;

else

resu=s1[i]-s2[i];

printf(“nresult:%d.n”,resu);

return 0;}

6-15 #include #include int main(){ char s1[80],s2[80];

int i;

printf(“input s2:”);

scanf(“%s”,s2);

for(i=0;i<=strlen(s2);i++)

s1[i]=s2[i];

printf(“s1:%sn”,s1);

return 0;}

第7章用函数实现模块化程序设计170 7.1为什么要用函数170 7.2怎样定义函数172 7.2.1为什么要定义函数172 7.2.2定义函数的方法173 7.3调用函数174 7.3.1函数调用的形式174 7.3.2函数调用时的数据传递175 7.3.3函数调用的过程177 7.3.4函数的返回值178 7.4对被调用函数的声明和函数原型179 7.5函数的嵌套调用182 7.6函数的递归调用184 7.7数组作为函数参数192 7.7.1数组元素作函数实参193 7.7.2数组名作函数参数194 7.7.3多维数组名作函数参数197 7.8局部变量和全局变量199 7.8.1局部变量199 7.8.2全局变量200 7.9变量的存储方式和生存期204 7.9.1动态存储方式与静态存储方式204 7.9.2局部变量的存储类别205 7.9.3全局变量的存储类别208 7.9.4存储类别小结212 7.10关于变量的声明和定义214 7.11内部函数和外部函数215 7.11.1内部函数215 7.11.2外部函数215习题218 7-1-1 #include int main(){int hcf(int,int);

int lcd(int,int,int);

int u,v,h,l;

scanf(“%d,%d”,&u,&v);

h=hcf(u,v);

printf(“H.C.F=%dn”,h);

l=lcd(u,v,h);

printf(“L.C.D=%dn”,l);

return 0;}

int hcf(int u,int v){int t,r;if(v>u)

{t=u;u=v;v=t;} while((r=u%v)!=0)

{u=v;

v=r;} return(v);}

int lcd(int u,int v,int h)

{

return(u*v/h);

}

7-1-2 #include int Hcf,Lcd;int main(){void hcf(int,int);

void lcd(int,int);

int u,v;

scanf(“%d,%d”,&u,&v);

hcf(u,v);

lcd(u,v);

printf(“H.C.F=%dn”,Hcf);

printf(“L.C.D=%dn”,Lcd);

return 0;}

void hcf(int u,int v){int t,r;if(v>u)

{t=u;u=v;v=t;} while((r=u%v)!=0)

{u=v;

v=r;

} Hcf=v;}

void lcd(int u,int v)

{

Lcd=u*v/Hcf;

}

7-2 #include #include float x1,x2,disc,p,q;int main(){void greater_than_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;printf(“input a,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);printf(“equation: %5.2f*x*x+%5.2f*x+%5.2f=0n”,a,b,c);disc=b*b-4*a*c;printf(“root:n”);if(disc>0)

{

greater_than_zero(a,b);

printf(“x1=%fttx2=%fn”,x1,x2);

} else if(disc==0)

{equal_to_zero(a,b);

printf(“x1=%fttx2=%fn”,x1,x2);

} else

{smaller_than_zero(a,b);

printf(“x1=%f+%fitx2=%f-%fin”,p,q,p,q);

} return 0;}

void greater_than_zero(float a,float b){x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);}

void equal_to_zero(float a,float b){

x1=x2=(-b)/(2*a);}

void smaller_than_zero(float a,float b){

p=-b/(2*a);

q=sqrt(-disc)/(2*a);}

7-3 #include int main(){int prime(int);

int n;

printf(“input an integer:”);

scanf(“%d”,&n);

if(prime(n))

printf(“%d is a prime.n”,n);

else

printf(“%d is not a prime.n”,n);

return 0;}

int prime(int n)

{int flag=1,i;

for(i=2;i

if(n%i==0)

flag=0;

return(flag);

}

7-4 #include #define N 3 int array[N][N];int main(){ void convert(int array[][3]);int i,j;printf(“input array:n”);for(i=0;i

for(j=0;j

scanf(“%d”,&array[i][j]);printf(“noriginal array :n”);for(i=0;i

{for(j=0;j

printf(“%5d”,array[i][j]);

printf(“n”);

} convert(array);printf(“convert array:n”);for(i=0;i

{for(j=0;j

printf(“%5d”,array[i][j]);

printf(“n”);

} return 0;}

void convert(int array[][3]){int i,j,t;for(i=0;i

for(j=i+1;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

} }

#include #include int main(){void inverse(char str[]);char str[100];printf(“input string:”);scanf(“%s”,str);inverse(str);printf(“inverse string:%sn”,str);return 0;}

void inverse(char str[]){char t;

int i,j;

for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)

{t=str[i];

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

str[j-1]=t;

} }

7-6

#include int main(){void concatenate(char string1[],char string2[],char string[]);char s1[100],s2[100],s[100];printf(“input string1:”);scanf(“%s”,s1);printf(“input string2:”);scanf(“%s”,s2);concatenate(s1,s2,s);printf(“nThe new string is %sn”,s);return 0;}

void concatenate(char string1[],char string2[],char string[]){int i,j;for(i=0;string1[i]!='';i++)

string[i]=string1[i];for(j=0;string2[j]!='';j++)

string[i+j]=string2[j];string[i+j]='';}

7-7 #include int main(){void cpy(char [],char []);char str[80],c[80];printf(“input string:”);gets(str);cpy(str,c);printf(“The vowel letters are:%sn”,c);return 0;}

void cpy(char s[],char c[]){ int i,j;

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

if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'||

s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U')

{c[j]=s[i];

j++;

}

c[j]='';}

7-8 #include #include int main(){char str[80];void insert(char []);printf(“input four digits:”);scanf(“%s”,str);insert(str);return 0;}

void insert(char str[]){int i;for(i=strlen(str);i>0;i--)

{str[2*i]=str[i];

str[2*i-1]=' ';

} printf(“output:n%sn”,str);} 7-9 #include int letter,digit,space,others;int main(){void count(char []);char text[80];printf(“input string:n”);gets(text);printf(“string:”);puts(text);letter=0;digit=0;space=0;others=0;count(text);

printf(“nletter:%dndigit:%dnspace:%dnothers:%dn”,letter,digit,space,others);return 0;}

void count(char str[]){int i;for(i=0;str[i]!='';i++)if((str[i]>='a'&& str[i]<='z')||(str[i]>='A' && str[i]<='Z'))

letter++;else if(str[i]>='0' && str [i]<='9')

digit++;else if(str[i]==32)

space++;else

others++;} 7-10 #include #include int main(){int alphabetic(char);int longest(char []);int i;char line[100];printf(“input one line:n”);gets(line);printf(“The longest word is :”);for(i=longest(line);alphabetic(line[i]);i++)

printf(“%c”,line[i]);printf(“n”);return 0;}

int alphabetic(char c){if((c>='a' && c<='z')||(c>='A'&&c<='z'))

return(1);else

return(0);}

int longest(char string[]){int len=0,i,length=0,flag=1,place=0,point;for(i=0;i<=strlen(string);i++)

if(alphabetic(string[i]))

if(flag)

{point=i;

flag=0;

}

else

len++;

else

{flag=1;

if(len>=length)

{length=len;place=point;len=0;}

} return(place);}

7-11 #include #include #define N 10 char str[N];int main(){void sort(char []);int i,flag;for(flag=1;flag==1;)

{printf(“input string:n”);

scanf(“%s”,&str);

if(strlen(str)>N)

printf(“string too long,input again!”);

else

flag=0;

} sort(str);printf(“string sorted:n”);for(i=0;i

printf(“%c”,str[i]);printf(“n”);return 0;}

void sort(char str[]){int i,j;char t;for(j=1;j

for(i=0;(i

if(str[i]>str[i+1])

{t=str[i];

str[i]=str[i+1];

str[i+1]=t;

} }

7-12 #include #include int main(){float solut(float a,float b,float c,float d);float a,b,c,d;printf(“input a,b,c,d:”);scanf(“%f,%f,%f,%f”,&a,&b,&c,&d);printf(“x=%10.7fn”,solut(a,b,c,d));return 0;}

float solut(float a,float b,float c,float d){float x=1,x0,f,f1;do

{x0=x;

f=((a*x0+b)*x0+c)*x0+d;

f1=(3*a*x0+2*b)*x0+c;

x=x0-f/f1;

} while(fabs(x-x0)>=1e-3);return(x);}

7-13 #include #define N 10 #define M 5 float score[N][M];float a_stu[N],a_cour[M];int r,c;

int main(){ int i,j;

float h;

float s_var(void);

float highest();

void input_stu(void);

void aver_stu(void);

void aver_cour(void);

input_stu();

aver_stu();

aver_cour();

printf(“n NO.cour1

cour2

cour3

cour4 avern”);

for(i=0;i

{printf(“n NO %2d ”,i+1);

for(j=0;j

printf(“%8.2f”,score[i][j]);

printf(“%8.2fn”,a_stu[i]);

}

printf(“naverage:”);

for(j=0;j

printf(“%8.2f”,a_cour[j]);

printf(“n”);

h=highest();

printf(“highest:%7.2f

NO.%2d

course %2dn”,h,r,c);

printf(“variance %8.2fn”,s_var());

return 0;

cour5

}

void input_stu(void){int i,j;

for(i=0;i

{printf(“ninput score of student%2d:n”,i+1);

for(j=0;j

scanf(“%f”,&score[i][j]);

} }

void aver_stu(void){int i,j;

float s;

for(i=0;i

{for(j=0,s=0;j

s+=score[i][j];

a_stu[i]=s/5.0;

} } void aver_cour(void){int i,j;

float s;

for(j=0;j

{s=0;

for(i=0;i

s+=score[i][j];

a_cour[j]=s/(float)N;

} }

float highest(){float high;

int i,j;

high=score[0][0];

for(i=0;i

for(j=0;j

if(score[i][j]>high)

{high=score[i][j];r=i+1;c=j+1;}

return(high);}

float s_var(void){int i;

float sumx,sumxn;

sumx=0.0;

sumxn=0.0;

for(i=0;i

{sumx+=a_stu[i]*a_stu[i];

sumxn+=a_stu[i];

}

return(sumx/N-(sumxn/N)*(sumxn/N));}

7-*14 #include #define N 10 #define M 5 float score[N][M];float a_stu[N],a_cour[M];int r,c;

int main(){ int i,j;

float h;

float s_var(void);

float highest();

void input_stu(void);

void aver_stu(void);

void aver_cour(void);

input_stu();

aver_stu();

aver_cour();

printf(“n NO.cour1 avern”);

for(i=0;i

{printf(“n NO %2d ”,i+1);

for(j=0;j

printf(“%8.2f”,score[i][j]);

printf(“%8.2fn”,a_stu[i]);

}

cour2

cour3 cour4

cour5

printf(“naverage:”);

for(j=0;j

printf(“%8.2f”,a_cour[j]);

printf(“n”);

h=highest();

printf(“highest:%7.2f

NO.%2d

course %2dn”,h,r,c);

printf(“variance %8.2fn”,s_var());

return 0;}

void input_stu(void){int i,j;

for(i=0;i

{printf(“ninput score of student%2d:n”,i+1);

for(j=0;j

scanf(“%f”,&score[i][j]);

} }

void aver_stu(void){int i,j;

float s;

for(i=0;i

{for(j=0,s=0;j

s+=score[i][j];

a_stu[i]=s/5.0;

} }

void aver_cour(void){int i,j;

float s;

for(j=0;j

{s=0;

for(i=0;i

s+=score[i][j];

a_cour[j]=s/(float)N;

} }

float highest(){float high;

int i,j;

high=score[0][0];

for(i=0;i

for(j=0;j

if(score[i][j]>high)

{high=score[i][j];r=i+1;c=j+1;}

return(high);}

float s_var(void){int i;

float sumx,sumxn;

sumx=0.0;

sumxn=0.0;

for(i=0;i

{sumx+=a_stu[i]*a_stu[i];

sumxn+=a_stu[i];

}

return(sumx/N-(sumxn/N)*(sumxn/N));} 7-15 #include #include #define N 10 int main()

{void input(int [],char name[][8]);

void sort(int [],char name[][8]);void search(int ,int [],char name[][8]);int num[N],number,flag=1,c;

char name[N][8];

input(num,name);

sort(num,name);

while(flag==1)

{printf(“ninput number to look for:”);

scanf(“%d”,&number);

search(number,num,name);

printf(“continue ot not(Y/N)?”);

getchar();

c=getchar();

if(c=='N'||c=='n')

flag=0;

} return 0;

}

void input(int num[],char name[N][8]){int i;

for(i=0;i

{printf(“input NO.: ”);

scanf(“%d”,&num[i]);

printf(“input name: ”);

getchar();

gets(name[i]);

} }

void sort(int num[],char name[N][8]){ int i,j,min,templ;

char temp2[8];

for(i=0;i

{min=i;

for(j=i;j

if(num[min]>num[j])min=j;

templ=num[i];

strcpy(temp2,name[i]);

num[i]=num[min];

strcpy(name[i],name[min]);

num[min]=templ;

strcpy(name[min],temp2);

}

printf(“n result:n”);

for(i=0;i

printf(“n %5d%10s”,num[i],name[i]);}

void search(int n,int num[],char name[N][8])

{int top,bott,mid,loca,sign;

top=0;

bott=N-1;

loca=0;

sign=1;

if((nnum[N-1]))loca=-1;

while((sign==1)&&(top<=bott)){mid=(bott+top)/2;

if(n==num[mid])

{loca=mid;

printf(“NO.%d , his name is %s.n”,n,name[loca]);

sign=-1;

} else if(n

bott=mid-1;else

top=mid+1;}

if(sign==1 || loca==-1)

printf(“%d not been found.n”,n);

}

7-16 #include #define MAX 1000 int main(){ int htoi(char s[]);

int c,i,flag,flag1;

char t[MAX];

i=0;

flag=0;

flag1=1;

printf(“input a HEX number:”);

while((c=getchar())!='' && i

{if(c>='0' && c<='9'||c>='a' && c<='f'||c>='A' && c<='F')

{flag=1;

t[i++]=c;

}

else if(flag)

{t[i]='';

printf(“decimal number %dn”,htoi(t));

printf(“continue or not?”);

c=getchar();

if(c=='N'||c=='n')

flag1=0;

else

{flag=0;

i=0;

printf(“ninput a HEX number:”);

}

}

}

return 0;

}

int htoi(char s[])

{ int i,n;

n=0;

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

{if(s[i]>='0'&& s[i]<='9')

n=n*16+s[i]-'0';

if(s[i]>='a' && s[i]<='f')

n=n*16+s[i]-'a'+10;

if(s[i]>='A' && s[i]<='F')

n=n*16+s[i]-'A'+10;

}

return(n);

}

7-17 #include int main(){ void convert(int n);

int number;

printf(“input an integer: ”);

scanf(“%d”,&number);

printf(“output: ”);

if(number<0){putchar('-');putchar(' ');/* */

number=-number;

}

convert(number);

printf(“n”);

return 0;}

void convert(int n){ int i;

if((i=n/10)!=0)

convert(i);

putchar(n%10+'0');

putchar(32);

先输出一个‘-’号和空格 }

7-18 #include int main(){int sum_day(int month,int day);int leap(int year);int year,month,day,days;printf(“input date(year,month,day):”);scanf(“%d,%d,%d”,&year,&month,&day);printf(“%d/%d/%d ”,year,month,day);days=sum_day(month,day);

sum_day */

if(leap(year)&&month>=3)/* */

days=days+1;printf(“is the %dth day in this year.n”,days);return 0;}

/* 调用函数调用函数leap

int sum_day(int month,int day)/* 函数sum_day:计算日期 */

{int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int i;

for(i=1;i

return(day);} /* 函数leap:判断是否为闰年 */

int leap(int year){int leap;

leap=year%4==0&&year%100!=0||year%400==0;

return(leap);}

第8章善于利用指针220 8.1指针是什么220 8.2指针变量222 8.2.1使用指针变量的例子222 8.2.2怎样定义指针变量223 8.2.3怎样引用指针变量224 8.2.4指针变量作为函数参数226 8.3通过指针引用数组230 8.3.1数组元素的指针230 8.3.2在引用数组元素时指针的运算231 8.3.3通过指针引用数组元素233 8.3.4用数组名作函数参数237 8.3.5通过指针引用多维数组245 8.4通过指针引用字符串255 8.4.1字符串的引用方式 255 8.4.2字符指针作函数参数259 8.4.3使用字符指针变量和字符数组的比较263 8.5指向函数的指针266 8.5.1什么是函数指针266 8.5.2用函数指针变量调用函数266 8.5.3怎样定义和使用指向函数的指针变量268 8.5.4用指向函数的指针作函数参数270 8.6返回指针值的函数274 8.7指针数组和多重指针277 8.7.1什么是指针数组 277 8.7.2指向指针数据的指针280 8.7.3指针数组作main函数的形参282 8.8动态内存分配与指向它的指针变量285 8.8.1什么是内存的动态分配285 8.8.2怎样建立内存的动态分配285 8.8.3void指针类型 287 8.9有关指针的小结288习题291 8-1 #include int main(){ void swap(int *p1,int *p2);int n1,n2,n3;int *p1,*p2,*p3;printf(“input three integer n1,n2,n3:”);scanf(“%d,%d,%d”,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1>n2)swap(p1,p2);if(n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf(“Now,the order is:%d,%d,%dn”,n1,n2,n3);return 0;} void swap(int *p1,int *p2)

{int p;

p=*p1;*p1=*p2;*p2=p;

}

#include #include int main(){void swap(char *,char *);char str1[20],str2[20],str3[20];printf(“input three line:n”);gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)>0)swap(str1,str2);if(strcmp(str1,str3)>0)swap(str1,str3);if(strcmp(str2,str3)>0)swap(str2,str3);printf(“Now,the order is:n”);printf(“%sn%sn%sn”,str1,str2,str3);return 0;}

void swap(char *p1,char *p2){char p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);}

8-3 #include int main(){ void input(int *);

void max_min_value(int *);

void output(int *);

int number[10];

input(number);

max_min_value(number);

output(number);

return 0;}

void input(int *number)

{int i;

printf(“input 10 numbers:”);

for(i=0;i<10;i++)

scanf(“%d”,&number[i]);

}

void max_min_value(int *number)

{ int *max,*min,*p,temp;

max=min=number;

for(p=number+1;p

if(*p>*max)max=p;

else if(*p<*min)min=p;

temp=number[0];number[0]=*min;*min=temp;

if(max==number)max=min;

temp=number[9];number[9]=*max;*max=temp;

}

void output(int *number)

{int *p;

printf(“Now,they are:

”);

for(p=number;p

printf(“%d ”,*p);

printf(“n”);

}

8-4 #include int main()

{void move(int [20],int,int);

int number[20],n,m,i;printf(“how many numbers?”);scanf(“%d”,&n);printf(“input %d numbers:n”,n);for(i=0;i

scanf(“%d”,&number[i]);printf(“how many place you want move?”);scanf(“%d”,&m);move(number,n,m);printf(“Now,they are:n”);for(i=0;i

printf(“%d ”,number[i]);printf(“n”);return 0;}

void move(int array[20],int n,int m)

{int *p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m>0)move(array,n,m);

} 8-5 #include int main(){int i,k,m,n,num[50],*p;printf(“ninput number of person: n=”);scanf(“%d”,&n);p=num;for(i=0;i

*(p+i)=i+1;

i=0;

k=0;

m=0;

while(m

{if(*(p+i)!=0)k++;

if(k==3)

{*(p+i)=0;

k=0;

m++;

}

i++;

if(i==n)i=0;

} while(*p==0)p++;printf(“The last one is NO.%dn”,*p);return 0;}

8-6 #include int main(){int length(char *p);int len;char str[20];printf(“input string: ”);scanf(“%s”,str);len=length(str);printf(“The length of string is %d.n”,len);return 0;}

int length(char *p)

{int n;n=0;while(*p!='')

{n++;

p++;

} return(n);}

8-7 #include #include int main(){void copystr(char *,char *,int);

int m;char str1[20],str2[20];printf(“input string:”);gets(str1);printf(“which character that begin to copy?”);scanf(“%d”,&m);if(strlen(str1)

printf(“input error!”);else

{copystr(str1,str2,m);

printf(“result:%sn”,str2);

} return 0;}

void copystr(char *p1,char *p2,int m)

{int n;

第四篇:C语言作业答案

厦门大学公共课 《C语言程序设计》 教材习题答案

第三章 结构化程序设计

一、思考题

1、顺序结构的语句有哪些?

表达式语句,空语句,复合语句

2、从程序控制的角度看,复合语句是单一的语句吗?

3、C语言中的语句有哪几类?C语句与其他语言中的语句有哪些异同?

表达式语句,空语句,复合语句,控制语句。C语言与其他语言的语句类型基本相同,只是语法有所区别。

4、怎样区分表达式和表达式语句?C语言为什么要设表达式语句?什么时候用表达式,什么时候用表达式语句?

在C语言中,只要在任何表达式的结尾加上分号“;”就构成了表达式语句。表达式语句使C语言更加灵活。当我们使用表达式语句时一般只关心它的作用而不关心该表达式的值。如puts(“hello”);这个表达式语句,我们关心的是输出hello这个结果而不是puts函数的返回值。

5、C语言的输入输出功能是表达式语句吗,为什么?

是,因为输入输出功能是函数调用语句。

二、选择题

1、以下符合C语言语法的赋值表达式是B)d=9+e,f=d+9

2、下面程序运行时的输出结果是D)a=8

main(){

int a=5;

printf(“a=%dn”,++a+2);}

3、putchar函数可以向终端输出一个D)字符或字符变量值

4、运行以下程序时,从键盘输入25,13,10(回车),则输出结果是A)a1+a2+a3=48 main(){

int a1,a2,a3;

scanf(“%d,%d,%d”,&a1,&a2,&a3);}

5、若有以下定义和语句 char c1=‟b‟,c2=‟e‟;printf(“%d,%cn”,c2-c1,c2-„a‟+‟A‟);则输出结果是B)3,E

6、下面程序的执行结果是A)10 main(){

int a,b;

a=20;b=10;

a+=a+b;

a-=a-b;

printf(“%dn”,a);}

7、使下列程序输出”123,456,78”,由键盘输出数据,正确的输入是C)123,45678

int i,j,k;

scanf(“%d,%3d%d”,&i,&j,&k);主讲教师:林子雨

E-mail:ziyulin@xmu.edu.cn

第1页/共4页 厦门大学公共课 《C语言程序设计》 教材习题答案

第三章 结构化程序设计

printf(“%d,%d,%dn”,i,j,k);

三、编程题

1、若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出结果如下: a=3 b=4 c=5 x=1.200000,y=2.400000,z=-3.600000 x+y=3.60 y+z=-1.20 z+x=-2.40 u=51274 n=128765 c1=’a’or 97(ascii)c2=’b’or 98(ascii)#include

void main(){ int a=3,b=4,c=5;double x=1.2,y=2.4,z=-3.6;long u=51274,n=128765;char c1='a',c2='b';printf(“a=%d b=%d c=%dn”,a,b,c);printf(“x=%lf,y=%lf,z=%lfn”,x,y,z);printf(“x+y=%.2f y+z=%.2f z+x=%.2fn”,x+y,y+z,z+x);printf(“u=%ld n=%ldn”,u,n);printf(“c1='%c'or%d(ascii)n”,c1,c1);printf(“c2='%c'or%d(ascii)n”,c2,c2);}

2、请写出下面程序的输出结果 main(){ int a=5,b=7;float x=67.8564,y=-789.124;char c=’a’;long n=1234567;unsigned u=65535;printf(“%d%dn”,a,b);printf(“%3d%3dn”,a,b);printf(“%f,%fn”,x,y);printf(“%-10f,%10fn”,x,y);printf(“8.2f,%8.2f,%.4f,%.4f,%3f,%3fn”,x,y,x,y,x,y);printf(“%e,%10.2en”,x,y);printf(“%c,%d,%o,%xn”,c,c,c,c);printf(“%ld,%lo,%xn”,n,n,n);printf(“%u,%o,%x,%dn”,u,u,u,u);printf(“%s,%5.3sn”,”computer”,”computer”);} 57 主讲教师:林子雨

E-mail:ziyulin@xmu.edu.cn 第2页/共4页

厦门大学公共课 《C语言程序设计》 教材习题答案

第三章 结构化程序设计 7 67.856400,-789.124023 67.856400 ,-789.124023 8.2f,67.86,-789.1240,67.8564,-789.124023,67.856400 6.785640e+001,-7.89e+002 a,97,141,61 1234567,4553207,12d687 65535,177777,ffff,65535 computer, com

3、用下面的scanf函数输入数据,使a=10,b=20,c1=’a’,c2='a',x=1.5.,y=-3.75,z=67.8,请问在键盘上如何输入数据?

scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);0001000020aa1.5-3.75 1,67.8 4.设圆球半径为r=2.5,求圆球表面积、圆球体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。请编程序。#include #define PI 3.14 main(){ float r,s,v;printf(“输入半径:”);scanf(“%f”,&r);s=4*PI*r*r;v=4.0/3*PI*r*r*r;printf(“圆球面积是:%.2fn”,s);printf(“圆球体积是:%.2fn”,v);} 5.输入一个华氏温度,根据公式为c=5/9(f-32)计算并输出摄氏温度,输出时要求有文字说明,取2位小数。请编程序。#include main(){ float f,c;printf(“输入华氏温度:”);scanf(“%f”,&f);c=5.0/9*(f-32);printf(“摄氏温度是:%f”,c);} 6.输入三角形的三边长,求三角形面积。请编程序。#include #include main(){ float a,b,c,s,area;主讲教师:林子雨

E-mail:ziyulin@xmu.edu.cn

第3页/共4页 厦门大学公共课 《C语言程序设计》 教材习题答案

第三章 结构化程序设计

} 7.编写一个能引起short型变量溢出的程序。#include main(){ short a;a=21344211;printf(“a=21344211,溢出后a=%dn”,a);} 8.编写一个程序,显示下列10个转义字符:a,b,n,r,t,v,',“,? #include main(){ printf(”a,b,r, ,v,',“,?”);} 9.编写一个程序,输入一个小写字母,输出其对应的大写字母。#include main(){ char a,A;printf(“输入一个小写字母,将输出一个相应大写字母:”);a=getchar();A=a+'A'-'a';putchar(A);putchar('n');} printf(“输入三角形的三条边长:”);scanf(“%f%f%f”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){ //海伦公式

s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“面积是:%f”,area);} else printf(“该三角形不存在!”);主讲教师:林子雨

E-mail:ziyulin@xmu.edu.cn

第4页/共4页

第五篇:c语言课后答案

第7章

数组习题解答

一、在以下每一题的四个选项中,请选择一个正确的答案。【题7.1】 C 【题7.2】 D 【题7.3】 D 【题7.4】 D 【题7.5】 C 【题7.6】 C 【题7.7】 C 【题7.8】 C 【题7.9】 B 【题7.10】 B

二、判断下列各叙述的正确性,若正确在()内标记√,若错误在(【题7.11】 √ 【题7.12】 √ 【题7.13】 × 【题7.14】 × 【题7.15】 √ 【题7.16】 × 【题7.17】 × 【题7.18】 × 【题7.19】 √ 【题7.20】 ×

三、填空。请在下面各叙述的空白处填入合适的内容。【题7.21】 字符数组 【题7.22】 0 【题7.23】 4 【题7.24】 按行的顺序存放 【题7.25】 48 【题7.26】 strcat()【题7.27】 6 【题7.28】 10 【题7.29】 strcmp()

×。– 1 –)内标记 C语言程序设计教程实验指导与习题解答

【题7.30】 #include

四、阅读下面的程序,写出程序运行结果。【题7.31】 abcdefg

abcdef

abcde

abcd

abc

ab

a 【题7.32】 1 1

1

1

1 【题7.33】 a[2]*b[1]=2

a[4]*b[4]=16

a[6]*b[7]=42 【题7.34】 10 1 2 3 4 5 6 7 8 9

五、程序填空。请在下面程序空白处填入合适的语句。【题7.35】 a[j++]=a[i] 【题7.36】 array[i]>array[j]

六、编程。对下面的问题编写程序并上机验证。

【题7.37】 编写程序,用冒泡法对20个整数排序(按升序排序)。

/*lx7_1.c*/ #include “stdio.h” #define N 20 void main(){

int data[N];

int i,j,t;

printf(“请输入 %d 个整数:n”,N);

for(i=0;i

scanf(“%d”,&data[i]);

printf(“n”);

for(i=0;i

for(j=0;j

if(data[i]>data[j])

{

t=data[i];data[i]=data[j];data[j]=t;} – 2 – 第一部分习题解答

printf(“排序后的输出为:n”);

for(i=0;i

printf(“%d ”,data[i]);} 【题7.38】 编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。

/*lx7_2.c*/ #include “stdio.h” #define N 5 void main(){

int a[N+1];

int i,j,t,num;

printf(“请输入 %d 个整数:n”,N);

for(i=0;i

scanf(“%d”,&a[i]);

printf(“n”);

for(i=0;i

for(j=i+1;j

if(a[i]>a[j])

{ t=a[i];a[i]=a[j];a[j]=t;}

printf(“第一次输出:n”);

for(i=0;i

printf(“%d ”,a[i]);

printf(“n”);

printf(“请输入一个数:”);

scanf(“%d”,&num);

if(num>=a[N-1])

a[N]=num;

else if(num

{

for(i=N-1;i>=0;i--)

a[i+1]=a[i];

a[0]=num;

}

else

for(i=N-1;i>=0;i--)

if(a[i]>num)

a[i+1]=a[i];

else

{

a[i+1]=num;

break;

– 3 – C语言程序设计教程实验指导与习题解答

}

printf(“第二次输出:n”);

for(i=0;i

printf(“%d ”,a[i]);

printf(“n”);} 【题7.39】 编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。

/*lx7_3.c*/ #include “stdio.h” #define N 10 void main(){

int a[N];

int num,i;

char ch='n';

printf(“请输入一个数组:n”);

for(i=0;i

scanf(“%d”,&a[i]);

printf(“输出数组:n”);

for(i=0;i

printf(“%d ”,a[i]);

printf(“n”);

printf(“请输入一个数n”);

scanf(“%d”,&num);

printf(“开始查找n”);

for(i=0;i

if(num= =a[i])

{

ch='y';

printf(“%d 在数组的第 %d 位n”,num,i+1);

}

if(ch= ='n')

printf(“no foundn”);} 【题7.40】 若有说明:int a[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。

/*lx7_4.c*/ #include “stdio.h” void main(){

int a[2][3]={{1,2,3},{4,5,6}},b[3][2];– 4 – 第一部分习题解答

int i,j;

for(i=0;i<2;i++)

{ for(j=0;j<3;j++)

printf(“%dt”,a[i][j]);

printf(“n”);

}

for(i=0;i<2;i++)

for(j=0;j<3;j++)

b[j][i]=a[i][j];

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

{

for(j=0;j<2;j++)

printf(“%dt”,b[i][j]);

printf(“n”);

} } 【题7.41】 定义一个含有30个整数的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出,试编程。

/*lx7_5.c*/ #include “stdio.h” #define N 30 #define M 5 void main(){

int a[N],sum[N/M];

float s;

int i,j,k=0;

for(i=0;i

{ a[i]=2*(i+1);

printf(“%dt”,a[i]);

}

printf(“n”);

for(i=0;i

{ s=0;

for(j=i;j

s=s+a[j];

sum[k++]=s/M;

}

for(i=0;i

printf(“%dt”,sum[i]);}

– 5 – C语言程序设计教程实验指导与习题解答

【题7.42】 编写程序,在5行7列的二维数组中查找第一次出现的负数。

/*lx7_6.c*/ #include “stdio.h” void main(){

int i,j,a[5][7];

printf(“请输入一个二维数组n”);

for(i=0;i<5;i++)

for(j=0;j<7;j++)

scanf(“%d”,&a[i][j]);

printf(“n”);

for(i=0;i<5;i++)

for(j=0;j<7;j++)

if(a[i][j]<0)

{

printf(“第一次出现的负数被找到!,负数值是%dn”,a[i][j]);

goto end1;

}

end1:

;} 【题7.43】 从键盘上输入60个字符,求相邻字母对(如ab)出现的频率。

/*lx7_7.c*/ #include “stdio.h” #include “string.h” #define N 60 void main(){

int i, len;

char ch[N];

float p,m=0;

printf(“请输入一个字符串:n”);

scanf(“%s”,ch);

len=strlen(ch);

for(i=0;ch[i]!='' && i

if(ch[i]= =ch[i+1]+1 || ch[i]+1= =ch[i+1])

m++;

p=m/len;

printf(“相邻字母对出现的频率是 %fn”,p);} 【题7.44】 编写程序,定义数组int a[4][6], b[4][6], c[4][6],并完成如下操作:(1)从键盘上输入数据给数组a、b。

(2)将数组a与数组b各对应元素作比较,如果相等,则数组c的对应元素为0,若前– 6 – 第一部分习题解答

者大于后者,则数组c的对应元素为1;若前者小于后者,则数组c的对应元素为−1。

(3)输出数组c各元素的值。

/*lx7_8.c*/ #include “stdio.h” void main(){

int i,j;

int a[4][6],b[4][6],c[4][6];

for(i=0;i<4;i++)

for(j=0;j<6;j++)

scanf(“%d”,&a[i][j]);

for(i=0;i<4;i++)

for(j=0;j<6;j++)

scanf(“%d”,&b[i][j]);

for(i=0;i<4;i++)

for(j=0;j<6;j++)

if(a[i][j]==b[i][j])

c[i][j]=0;

else if(a[i][j]>b[i][j])

c[i][j]=1;

else

c[i][j]=-1;

for(i=0;i<4;i++)

{ for(j=0;j<6;j++)

printf(“%dt”,c[i][j]);

printf(“n”);

} } 【题7.45】 编写程序,从键盘上输入两个字符串a和b,要求不用strcat()函数把串b的前五个字符连接到串a中,如果b的长度小于5,则把b的所有元素都连接到a中。

/*lx7_9.c*/ #include “stdio.h” #include “string.h” #define N 80 void main(){

char a[N],b[N];

int i,j,lena,lenb;

printf(“Please input first string:”);

scanf(“%s”,a);

printf(“Please input second string:”);

– 7 – C语言程序设计教程实验指导与习题解答

scanf(“%s”,b);

lena=strlen(a);

lenb=strlen(b);

if(lenb<=5)

{ for(i=lena,j=0;i

a[i]=b[j++];

a[i]='';

}

else

{ for(i=lena,j=0;j<5;j++)

a[i++]=b[j];

a[i]='';

}

printf(“Output first string:”);

printf(“%sn”,a);} 【题7.46】 编写函数,从一个排好序的整型数组中删去某数。

/*lx7_10.c*/ #define N 10 #include “stdio.h” int dele(int str[ ],int y){

int i, j, p=0;

for(i=0;i

if(str[i]= =y)

{ j=i;p=1;break;}

if(p= =1)

for(;j<=N-1;j++)

str[j]=str[j+1];

return p;} void main(){

int i, j, t, a[N], x;

printf(“Input an array:n”);

for(i=0;i

scanf(“%d”,&a[i]);

for(i=0;i

for(j=i;j

if(a[i]>a[j])

{ t=a[i],a[i]=a[j],a[j]=t;} – 8 – 第一部分习题解答

printf(“Input a data:”);

scanf(“%d”,&x);

if(dele(a,x))

for(i=0;i

printf(“%d ”,a[i]);

else

printf(“no deleten”);}

【题7.47】 编写函数,它将无符号整数转换成二进制字符表示。

/*lx7_11.c*/ #include “stdio.h” void dtob(unsigned m){

char str[17];

int i,n;

n=m;

for(i=15;i>=0;i--)

{

if(m%2= =1)

str[i]='1';

else

str[i]='0';

m=m/2;

}

str[16]='';

printf(“n=%dt%sn”,n,str);} void main(){

unsigned num;

printf(“Please input a integer:”);

scanf(“%d”,&num);

dtob(num);} 【题7.48】 编写函数lower()模拟标准函数strlwr(),调用形式为lower(char *st),其作用是将字符串st中的大写字母转换成小写。

/*lx7_12.c*/ #include “stdio.h” #define N 20 void lower(char *st){ int i=0;

while(st[i]!='')

– 9 – C语言程序设计教程实验指导与习题解答

{ if(st[i]>'A' && st[i]<='Z')

st[i]+=32;

i++;

} } void main(){ char s[N];

printf(“Input a string:n”);

scanf(“%s”,s);

lower(s);

printf(“Output: %sn”,s);} 【题7.49】 编写函数replicate()模拟标准函数strset(),调用形式为replicate(char *st,char ch),其作用是将字符串st中的所有字符设置成ch。

/*lx7_13.c*/ #include “stdio.h” #define N 20 void replicate(char *st,char ch){

int i=0;

while(st[i]!='')

st[i++]=ch;} void main(){

char s[N],ch;

printf(“Input a string:”);

scanf(“%s”,s);

ch='a';

replicate(s, ch);

printf(“nOutput: %sn”,s);} 【题7.50】 编写函数reverse()模拟标准函数strrev(),调用形式为reverse(char *st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列。

/*lx7_14.c*/ #include “stdio.h” #include “string.h” void reverse(char *st){ int i=0,n;

char t;

n=strlen(st);– 10 – 第一部分习题解答

for(;i

{ t=st[i];

st[i]=st[n-i-1];

st[n-i-1]=t;

} } void main(){ char s[80];

printf(“Input a stringn”);

scanf(“%s”,s);

reverse(s);

printf(“Output: %sn”,s);}

– 11 –

下载模拟题c语言答案word格式文档
下载模拟题c语言答案.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    c语言试题及答案

    一、 单选题 1.在C语言中,下列类型属于构造类型的是( D ) A.整型 B.字符型 C.实型 D.数组类型 2.下列字符串不是标识符的是( D ) A. sum B. Average C. Day_night D. M.D.JOHN 3.......

    C语言考试题及答案

    C语言考试题一、单项选择题 (每题2分,共40分)1、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)A、有零个或多个输入B、有零个或多个输出C、有穷性D......

    c语言课后答案

    c语言课后答案 第一章习题答案一、选择题 1~5:BDCDA 6~10:DABBB 11~12:CC 二、填空题1、main() 2、函数首部 ,函数体3、函数4、编辑、编译、连接、运行5、.cpp、.obj、 .exe......

    深大C语言期末考试模拟题1

    一、 单选题1.是构成C语言的基本单位。A.函数B.过程C.子程序D.子例程2.能正确表示a≥10或a≤0关系表达式的是A.a>=10 or a=10 | a=10 || a=10,a=’0’)&&(c1=0)&&(c1......

    c语言编程题答案

    六、编程题参考答案 1.编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 #include "stdio.h" #define N 50 void main() { float x; unsigned int s1,......

    c语言课后答案 (精选5篇)

    第7章 C++中新增语法功能 一、 选择题。在以下每一题的四个选项中,请选择一个正确的答案。 【题7.1】B 【题7.2】D 【题7.3】B 【题7.4】C 【题7.5】B 【题7.6】C 【题7.7】C......

    C语言程序设计考试题答案

    1、 已知int i, x[3][4];则不能将x[1][1]的值赋给变量i的语句是______ (分数:2 分) A. i=*(*(x+1)) B. i=x[1][1] C. i=*(*(x+1)) D. i=*(x[1]+1) 标准答案是:A。 2、 当c的值不......

    C语言课后实验答案

    #include using namespace std; int main() { cout......