C程序设计作业集 联系客服

发布时间 : 星期一 文章C程序设计作业集更新完毕开始阅读099357ed551810a6f52486a1

int i=0,j=0 ;

while (a[i]!=?\\0?) i++ ;

while (【1 】) { a[i]=b[j] ; i++ ; j++ ; }

【2 】; printf(“%s\\n”,a); }

六.编程题

1.用选择法对10个整数排序。

2.有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。

3.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,中文字母,中文字符,数字,空格及其他字符的个数。(提示:中文字符是两个字节,且数值均大于128的字符)。

4.对三人的四门课程分别按人和科目求平均成绩,并输出包括平均成绩的二维成绩表。

5.提高题:将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。

6.提高题:打印出杨辉三角形(要求打印出10行,课本P141页7.6)

7.提高题:编写程序:

(1)求一个字符串S1的长度;

(2)将一个字符串S1的内容复制给另一个字符串S2;

(3)将两个字符串S1和S2连接起来,结果保存在S1字符串中;

(4)搜索一个字符在字符串中的位置(例如:?I?在”CHINA”中的位置为3)。如果没有搜索

到,则位置为-1。 (5)比较两个字符串S1和S2,如果S1>S2,输出一个正数;如果S1=S2,输出0;如果S1

输出一个负数;输出的正,负数值为两个字符串相应位置字符ASCII码值的差值,当两个字符串完全一样时,则认为S1=S2。

以上程序均使用gets或puts函数输入,输出字符串。不能使用string.h中的系统函数。

第八章 函数 一.选择题

1.以下正确的说法是 。

A)用户若需要调用标准库函数,调用前必须重新定义

B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C)系统不允许用户重新定义标准库函数

D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编

译,系统会自动调用。

2.以下正确的函数定义是 。

A)double fun(int x, int y) B)double fun(int x,y) { z=x+y ; return z ; } { int z ; return z ;} C)fun (x,y) D)double fun (int x, int y) { int x, y ; double z ; { double z ; z=x+y ; return z ; } return z ; } 3.以下正确的说法是 。

A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元

C)只有当实参和与其对应的形参同名时才共占用相同的存储单元 D)形参时虚拟的,不占用存储单元

4.以下正确的函数定义是 。

A)double fun(int x , int y) B)double fun(int x ; int y) C)double fun(int x , int y) ; B)double fun(int x,y)

5.若调用一个函数,且此函数中没有return语句,则正确的说法是 。 A)该函数没有返回值

B)该函数返回若干个系统默认值 C)能返回一个用户所希望的函数值 D)返回一个不确定的值

6.以下不正确的说法是 。 A)实参可以是常量,变量或表达式 B)形参可以是常量,变量或表达式 C)实参可以为任意类型

D)如果形参和实参的类型不一致,以形参类型为准 7.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是 。 A)地址传递 B)值传递

C)有实参传给形参,再由形参传给实参 D)由用户指定传递方式

8.以下程序由语法错误,有关错误原因的正确说法是 。 A)语句void prt_char( );有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母

C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线

9.C语言规定,函数返回值的类型是由 决定的。

A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数时由系统临时 D)在定义函数时所指定的函数类型 10.以下正确的描述是 。

A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套

11.若用数组名作为函数调用的实参,传递给形参的是 。 A)数组的首地址 B)数组中第一个元素的值

C)数组中的全部元素的值 D)数组元素的个数

12.假设调用函数有以下定义和函数f调用,则函数f中对形参数组错误定义的是 。 char c[5]={?a?,?b?,?\\0?,?c?,?\\0?}; printf(“%s”,c);

A)f(int array[][6]) B)f(int array[3][]) C)f(itn array[][4]) D)f(int array[2][5])

13.如果在一个函数中的复合语句中定义了一个变量,则该变量 。 A)只在该复合语句中有定义 B)在该函数中有定义 C)在本程序范围内有定义 D)为非法变量 14.以下不正确的说法是 。 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有定义

D)在函数内的复合语句中定义的变量在本函数范围内有定义 15.以下不正确的说法是 。 A)形参的存储单元是动态分配的 B)函数中的局部变量都是动态存储 C)全局变量都是静态存储

D)动态分配的变量的存储空间在函数结束调用后就被释放了 16.下面程序的输出是 。 int i=2 ;

printf(“%d%d%d”,i*=2,++i,i++) ;

A) 8,4,2 B)8,4,3 C)4,4,5 D)4,5,6 17.已知一个函数的定义如下: double fun(int x, double y) { ?? }

则该函数正确的函数原型声明为:

A)double fun (int x,double y) B)fun (int x,double y) C)double fun (int ,double ); D)fun(x,y) ; 18.关于函数声明,以下不正确的说法是 。

A)如果函数定义出现在函数调用之前,可以不必加函数原型声明

B)如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型

声明

C)函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查 D)标准库不需要函数原型声明

19.以下不正确的说法是 。

A)全局变量,静态变量的初值是在编译时指定的 B)静态变量如果没有指定初值,则其初值为0 C)局部变量如果没有指定初值,则其初值不确定

D)函数中的静态变量在函数每次调用时,都会重新设置初值 20.以下不正确的说法是 。 A)register变量可以提高变量使用的执行效率

B)register变量由于使用的是CPU的寄存器,其数目是有限制的 C)extern变量定义的存储空间按变量类型分配

D)全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求

二.填空题

1.C语言函数返回类型的默认定义类型是 。

2.函数调用语句:fun((a,b),(c,d,e))实参个数为 。

3.函数的实参传递到形参有两种方式: 和 。 4.在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式。

5.C语言变量按其作用域分为 和 。按其生存期分为 和 。

6.已知函数定义:void dothat(int n,double x) { ?? },其函数声明的两种写法为 和 。 7.C语言变量的存储类别有 , , 和 。 8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为 。 9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为 。

10.变量被赋初值可以分为两个阶段:即 和 。

三.程序阅读题

1.写出下面程序的运行结果。

func (int a,int b)

{ static int m=0,i=2; i+=m+1; m=i+a+b; return (m); }

main ( )

{ int k=4,m=1,p1,p2;

p1=func(k,m) ; p2=func(k,m) ; printf(“%d,%d\\n”,p1,p2) ; }

2.写出下面程序的运行结果。

# define MAX 10 int a[MAX], i ; sub1 ( )

{ for (i=0; i

sub2 ( )

{ int a[MAX], i ,max ; max=5;

for (i=0; i

sub3 (int a[ ]) { int i ;