C程序设计试卷八及答案
《C语言程序设计》试题八
一、选择题
1.一个C语言程序是由()构成。
A.语句B.行号C.数据D.函数
2.下面标识符中正确的是()。
A.a#bc B.123ABC C.sime D .Y·M·D
3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是()。)。)。)。
A.2、1、8 B.4、1、4
C.4、1、4 D.2、2、8
4.为了避免嵌套的条件分支语句 if--else中的else总是与()组成成对关系。
A. 缩排位置相同的
B. 在其之前未配对的
C. 在其之前未配对的最近的if
D. 在同一行上的if
5.下列表达式的结果正确的是()。
int a,b,c,d;
a=b=c=d=2;
d=a+1==3?b=a+2:a+3
A.2 B.4 C.3 D.5
二、填空题
1.在C语言中,正确的标识符是由______________________组成的,且由_______________开头的。
2. 设x=3,那么表达式y=(++x)+(++x)的结果为_________,表达式执行后,变量x的结果为_________。
3. 一个变量的指针是指_________________________________________________________________。
4. 组成数组元素的特点是_______________________________________________;
组成结构体元素的特点是________________________________________________。
5. 在C语言程序中,对文件进行操作首先要______________________________;然后对文件进行操作,
最后要对文件实行__________________________________操作,防止文件中信息的丢失。
6. 对字符串进行操作的函数有_______________________________________________________等。
7. C语言程序是由___________________构成的,而C语言的函数是由____________________构成的。
8. 要想定义整型变量 a , 实型变量 b , 字符型的变量c,应该使用的正确语句为______________________________________________________________________________________。
9. 写出下面表达式的值
3*5/7+7%3_______________________ x=2 ; y=4; (x++)+y _________________________
3+4>=7-10_______________________ 3>4 ? 3%2: 1 ______________________________
x=2,y=2;++x&&++y_________________ x=3 ; x+=x-=2 ________________________ ______
三、判断题
1. C语言的一个特点是可以对计算机硬件进行操作()
2. 在循环过程中,使用break语句和continue语句的作用是一样的()
3. 在函数的定义和调用过程中,形式参数和实在参数数目可以不一致()
4. 指针变量可以接收任何类型的值()
5. 在C语言程序设计中,字符数组和字符串不是完全一样的概念()
6. 文件指针是结构体类型,用符号file来表示()
7. 选择结构(if语句)和循环结构都可以使用嵌套形式()
8. 在定义二维数组时,可以将该数组的两个维数全部省略()
9. 逻辑运算符&& || ! 的运算顺序是! 优先于&& 优先于|| ()
10. 任何数组都可以实现整体使用操作()
四、程序填空题
1.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。
main()
{ int i , j , k;
for(i=1;_____________; i++)
{ for(j=1;______________; j++)
printf(“%d*%d=%d”,_______________);
printf(________________);
}
}
2.自己设计一个自定义函数,实现求两个数的最大数的功能,自定义函数如下:
int max(x,y)
int x , y ;
{
}
3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:
学生信息:包括(姓名,性别,年龄,分数),并且定义变量stud和数组stud1[30]
struct student
{
}
4. 根据给出的程序段,请写出正确的结果
x=1 ; sum=1 ;
for (x=1 ; x<=5 ; x++)
sum=sum*x;
上面的程序段实现的功能是:______________________________________________________ ;
其运行结果为______________________________________________________________________。
5.设有如下的语句。
int a=43,b,c;
b=23;
c=a++ * --b;
(1)上面的语句段执行后a= b= c=
;
(2)简述a++和++a的相同点和不同点:
6.设有如下的程序:
main( )
{ int i=3,*p1;
int a[3]={15,30,45},*p2;
p1=&i; p2=a;
p1=p2+2;
printf(“%d,%d\n”,*p1,*p2);
}
程序运行结果是:
。
五、编程题(25分)
1.编程实现对10个整数进行冒泡排序(要求排成升序)。
2.编程实现求下面的式子的结果
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去
六、附加题
用C语言程序实现在已知链表中的第三个位置插入数值为a的程序
《C语言程序设计》试题八答案
一、选择题
1.D 2. C 3. A 4. C 5. B 二、填空题
1.字母、数字、下划线;以字母、下划线开头。2.10;5。 3. 该变量的地址。
4.一组数据类型相同的元素构成的;一组数据类型不同的元素构成的。
5.打开;关闭。6.字符串长度、取子字符串、字符串替换、字符串复制等。
7.函数;语句。8.int a ; float b ; char c ;
9 9 9.3 6 1 1 1 2
三、判断题
1. 对
2. 错
3. 错
4. 错
5. 对
6. 错
7. 对
8. 错
9.对 10. 错
四、程序填空题
1. i<=9 j<=9
printf(“%d*%d=%d”,i,j,i*j);
printf(“\n”); i , j , k;
2. int z;
if (x>=y)z=x;
else z=y;
return z;
3. char name[20];
char sex;
int age;
float score;
4. 实现功能:计算连续数之积,即sum=1*2*3*4*5 ;
运行结果:sum=120
5. 44 22 946
a++:先加1,后使用表达式的值;++a表示先加1,后使用表达式的值,它们最后的结果使a 加1。
6.45,15
五、编程题
1.编程实现对12个整数进行冒泡排序(要求排成升序)。
Main()
{ int a[12]; int m,n,p;
for (m=0;m<=11;m++)(m=0;m<=11;m++)
scanf(“%d”,&a[m]);
for (m=0;m<=11;m++)
for(n=0;n<11-m;n++)
if(a[n]>a[n+1])
{ p=a[n]; a[n]=a[n+1]; a[n+1]=p; }
for (m=0;m<=11;m++)
printf(“%d”,a[m]); }
2.编程实现求下面的式子的结果
# include “math.h”
main()
{ float x,y;
scanf(“%f”&x);
if (x>6) y=(x-3)/(2*x-12);
else y=-2*x*x+4*x-10;
printf(“y=%f”,y); }
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去
main()
{ char ch;
FILE *fp1,*fp2;
Fp1=fopen(“file1.dat”, “r”);
Fp2=fopen(“file2.dat”, “w”);
Ch=fgetc(fp1);
While(ch!=EOF)
{ fputc(ch,fp2);
Ch=fgetc(fp1); }
Fclose(fp1);
Fclose(fp2); }
六、附加题
p=H;K=0;
While(p!=NULL && k { p=p->next; k++; } if(p==NULL && H!=NULL) printf(“this is invilid”); else { q=(Struct Linklist *)malloc(sizeof(Struct Linklist)); q->data=x; q->data=x; q->next=p->next; p->next=q; } 第四章数组参考答案 一、选择题:1、 B 2、C 3、D 4、C 5、C 6、B 7、D 8、B 9、B 10、A 二、填空题: 1、首地址 2、按行存放 3、一个字符 4、′\0′ 5、字符数组名或字符串 6、9 0 7、6 8、j-1 str[j-1] 9、62 10、s1[i]=s2[i]; 三、改错题 1、错误语句:int a[3][ ]={2,4,6,8,10,12,14,16,18}; 正确语句:int a[ ][3]={2,4,6,8,10,12,14,16,18}; 2、错误语句:if (str[2]>string) string=str[2]; 正确语句:if (strcmp(str[2],string)>0) strcpy(string,str[2]); 3、错误语句:char c[5]={'C','h ','i','n','a '}; 正确语句:char c[6]={'C','h ','i','n','a '};或char c[ ]={“China”}; 4、错误语句:int a[3]={3*0} ; 正确语句:int a[4]; 5、错误语句:scanf(“%d%d%d”,&a); 正确语句:for (i=0; i<3; i++) scanf(“%d”,&a[i]); 或scanf(“%d%d%d”, &a[0], &a[1], &a[2]); 四、编程题 1、用数组来处理,求解Fibonacci数列前40项:1,1,2,3,5,8,13,21…。 #include 第4章习题解答 一、选择题 1.在C语言中,函数返回值的类型最终取决于 A)函数定义时的函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型 解析:函数返回值类型最终取决于定义函数时所定义的函数类型。 答案:A 2.设函数Fun()的定义形式为: void Fun(char ch, float x){} 则以下对函数Fun()的调用语句中,正确的是。 A)Fun("abc", 3.0); B)t = Fun('D', 16.5); C)Fun('65', 2.8); D)Fun(32, 32); 解析:选项A中"abc"是字符串,与形参不匹配:由于Fun函数的返回值类型为void,所以选项B中进行了赋值操作是不正确的;在选项C中,'65'是不合法的字符形式,单引号中应该是单个字符。只有选项D才是合法的函数调用形式。 答案:D 3.有以下程序: /* 文件路径名:ex4_1_3\main.c */ #include C 语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include printf("The largest number is %d\n",max); return 0; } 第3 章 #include p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5 年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2 年期,到期后将本息再存3 年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3 年期,到期后将本息再存2 年期 p4=p*pow(1+r1,5); // 存1 年期,到期后将本息存再存1 年期,连续存5 次p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1); // 输出按第1 方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2 方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3 方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4 方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5 方案得到的本息和 return 0; } #include C程序设计第四版谭浩强完整版课后习题答案集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN] C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 向屏幕输出文字. #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } P008 求两个数的和. #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum); return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); } P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); } C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 1.1 向屏幕输出文字. #include int z; //z属于局部变量,可与主函数中相同名字. if (x>y) z=x; else z=y; return(z); //z作为整个程序的出口值,赋给主函数中的c. } #includeC语言程序设计习题参考答案第四章(数组)
C语言程序设计教程 清华大学出版社 陈明主编 第4章答案
c程序设计(第四版)谭浩强-课后答案.pdf(2)(最新整理)
C程序设计第四版谭浩强完整版课后习题答案
C程序设计(第四版)(谭浩强)完整版_课后习题答案
最新C++程序设计基础课后答案--第四章