当前位置:首页 > c语言编程基础习题答案
{
int i,exist; float a[4],n;
printf(\输入浮点型数组:\\n\for (i=0;i<4;i++) {
printf(\ scanf(\printf(\}
printf(\输入一个浮点数:\exist=0;
scanf(\for (i=0;i<4;i++)
{
printf(\ if (a[i]==n) exist=1; }
if (exist==1) printf(\在数组中。\\n\else printf(\不在数组中!\\n”,n);
}
此题前面的浮点型数组的值,也可通过初始化直接赋值的办法得到。 ⑷ 输出二维数组中最大值及位置的程序,编写如下: main() {
int i,j,row=0,col=0,max; int a[4][6]; for(i=0;i<4;i++) for(j=0;j<6;j++)
scanf(“%d”,&a[i][j]); max=a[0][0]; for(i=0;i<4;i++) for(j=0;j<6;j++) if(a[i][j]>max)
{max=a[i][j];row=i;col=j;}
printf(“max=%d,row=%d,col=%d\\n”,max,row,col); }
⑸ 在字符串中的指定位置插入字符串的程序,编写如下:
main()
{
char ch1[10],ch2[3],ch3[13]; int i=0,n;
printf(\输入字符串1(长度为10):\\n\scanf(\
printf(\输入字符串2(长度为3):\\n\scanf(\
printf(\插入位置n(n<10):\\n\scanf(\n--;
for (i=0;i for (i=n;i 习题七 1、填空题。 ⑴ C语言函数分成__系统提供的库函数__和__用户自定义函数_两大类。 ⑵ 一个C程序由主函数和若干__个自定义函数__组成,各个函数在程序中的定义是__相互独立__的。 ⑶ 函数的递归调用是指__函数直接或间接地调用自己__。 ⑷ 当__用数组名__作函数参数时,实参与形参的传递为“地址传递”。 ⑸ 根据变量的作用范围的不同,可将变量分为_局部_变量和_全局_变量。根据变量生存期的不同,可以将变量分为__动态存储__变量和__静态存储__变量。 ⑹ static变量的特点是__其值始终存在__。 2、选择题。 ⑴ 如果一个函数有返回值,那么这个函数只有__A__个返回值。 ⑵ 下面关于空函数的定义,正确的是___B___。 ⑶ 以下错误的描述是__C___。 ⑷ 调用一个不含return语句的函数,以下正确的说法是___D___。 ⑸ 下面函数调用语句中含有实参的个数为___C___。 ⑹ 数组名作函数参数时,实参传递给形参的是__B___。 3、指出并改正下面程序在函数定义或调用中的错误。 ⑴ 被调函数f(x)定义时对形式参数x未做参数说明。应改为: f(int x) 或: f(x) int x; ⑵ 函数调用时,实际参数的类型应与被调函数形式参数的类型相一致。本题在主函数中的整型变量a应改为浮点型: int a; 改为 float a; ⑶ 被调函数f( )定义时不需要加分号,f( ); 应改为:f( ) ⑷ 在C程序中,不能在一个函数的函数体内定义另一个函数。该题在主函数中定义f( )为空值类型且作为一个语句是错误的。应去掉 void f( ); 4、分析下列程序,写出运行结果。 ⑴ 主函数以a=2为实参调用f(x)函数,f(x)通过 return语句向主函数返回y的值赋给b,结果应为: b=4 ⑵ 在该程序中实参变量a、b和形参变量x、y分别占用不同的存储单元,虽然在swap函数中x、y的值发生了交换,但主函数中a、b的值却没有改变。运行结果应为: a=1↙ b=2↙ x=2,y=1 a=1,b=2 ⑶ 全局变量x初始化为1,调用被调函数f( ) 执行一次x++ ,然后再执行x++ 后输出x值应为: x=3 ⑷ x为定义在整个函数体和复合语句内的同名自动变量,其作用域不同。int x=20;定义在复合语句中,只在复合语句中有效。运行结果如下: x=20 x=11 ⑸ 执行被调函数,将原数组元素初值分别加1,因此输出结果为: num[0]=2 num[1]=3 num[2]=4 num[3]=5 num[4]=6 5、编写程序。 ⑴ 该题目要求使用判断奇偶数函数,编写程序如下: main() { int n; printf(\输入一个整数:\scanf(\a(n); } a(int n) { if (n%2==0) printf(\是偶数\\n\else printf(\是奇数\\n\} ⑵ 编写一个将3个数从小到大顺序输出的函数如下: sort(x,y,z) int x,y,z; { int t; if (x>y) {t=x; x=y; y=t;} if (x>z) {t=x; x=z; z=t;} if (y>z) {t=y; y=z; z=t;} Printf(\} ⑶ 将输入的秒数值,转换为时:分:秒输出,编程如下: int hou=0,min=0; main() { int sec,sec2; clrscr(); printf(\请输入秒数:\\n\scanf(\sec2=change(sec); printf(\个小时:%d 分钟:%d 秒\} int change(sec1) int sec1; { if(sec1>3600) {hou=sec1/3600; min=(sec1600)/60; sec1=sec1`;}
共分享92篇相关文档