武汉理工大学继续教育本科c语言程序设计2资料
- 格式:doc
- 大小:1.49 MB
- 文档页数:17
武汉理工大学继续教育《C语言程序设计(本)》在线作业答案一、单选(共计100分,每题2.5分)1、若已定义int a=11; 执行以下语句后的输出结果是()。
printf("a=%d,a=%o,a=%x\n",a,a,a) ;A. a=11, a=11, a=bB. a=11, a=13, a=bC. a=11, a=13, a=cD. a=11, a=12, a=132、A.B.C.D.3、以下程序运行后,文件test.txt的内容是()。
#include main() { FILE *fp; char str[][10]={"first","second"}; fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[0]); fclose(fp); fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[1]); fclose(fp); }A. firstB. secondC. first secondD. second first4、若有以下定义:struct node { int data; struct node *next; } struct node *head,*p; 已建立如下图所示的链表: p ↓┌──┬──┐┌──┬──┐┌──┬──┐head→│data│next┼→│data│next┼→...→│data│NULL│└──┴──┘└──┴──┘└──┴──┘能删除指针p所指向结点的程序段是()。
A. p = p->next; head->next=p->next; free(p);B. free(p); p = p->next; head->next=p->next;C. head->next = p->next; free(p);D. free(p); head->next = p->next;5、若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; ,则()表达式是错误的。
注:在 Visual C++ 6.0 编译环境中亲身调试经过,但不保证在Turbo C 中经过。
实验二选择构造的程序设计(题目当初没抄下来,这是依据程序整理的)4 x 8 1 x 01. 编程实现分段函数210x 1 0 x 1y 3x8x4 3x2 2 x 1 1 x 2#include<stdio.h>main(){float x,y;printf("Please input x:");scanf("%f",&x);if (x<-1||x>=2)printf("Data Error\n");else{if (x>=-1&&x<0)y=4*x-8;if (x>=0&&x<1)y=3*x*x+10*x-1;if (x>=1&&x<2)y=8*x*x*x*x-3*x*x+2*x-1;printf("\ny=%f\n",y);}}2.苹果有三个等级,一级 5.50 元 /斤,二级3.00 元/ 斤,三级 2.50 元 /斤。
编写程序,输入苹果的等级,购置的数目和所付的钱数,输出等级,购置的数目、对付钱数和找零。
#include<stdio.h>main(){int level;double weight,pay,money,charge;printf("Please input the level:");scanf("%d",&level);printf("Please input the weight you want:");scanf("%lf",&weight);printf("Please input the money you pay:");scanf("%lf",&pay);if (level<1||level>4||weight<0)else{printf("Data Error\n");if (level==1)else if (level==2) else if (level==3) else if (level==4) charge=pay-money; money=weight*5.50; money=weight*4.20; money=weight*3.00; money=weight*2.50;printf("\nLevel:%d\nweight:%g\n",level,weight);printf("money:%g\ncharge:%g\n\n",money,charge);}}实验三循环构造1.编程计算 1!+2! +3! +4! +5 !分别用单层循环和双层循环实现1020i!和i !考虑i 1i 1#include<stdio.h>main(){int i,x;double j,k,sum;printf("Please input a number:");scanf("%d",&x);//用单层循环for(sum=0,j=1,i=1;i<=x;i++){j*=i;sum+=j;}printf("The result is %lf\n",sum);//用双层循环for(sum=0,i=1;i<=x;i++){for(k=1,j=1;j<=i;j++) k*=j;sum+=k;}printf("The result is %lf\n",sum);}2. 共 20 个评委给选手评分,去掉1 个最高分,去掉 1 个最低分,其余18 名评委的均匀分即选手最后得分#include <stdio.h>main(){double score,min,max,avg=0;int i;//下边是为了输入第一个数printf("Please input 20 scores...\n");printf("Score 1:");min=score;max=score;avg+=score;//下边为了输入节余 19 个数 for(i=2;i<=20;i++){do{printf("Score %d:",i);scanf("%lf",&score);}while(score<0);if(score>max) max=score;avg+=score;}avg=avg-min-max;avg/=18;printf("\nThe average score is %lf:\n",avg);}实验四数组和指针的应用1. 定义一个有 10 元素的一位数组 count,从键盘上输入 8 个整数,将其按从大到小的次序摆列,并将排序后的数组输出( 1)数组方法#include<stdio.h>main(){int count[10],t,i,j;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&count[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (count[i]<count[j]){t=count[i];count[i]=count[j];count[j]=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d",count[i]);}( 2)指针方法#include<stdio.h>main(){int count[10],t,i,j,*p=count;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&p[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (*(p+i)<*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d",count[i]);}2.输入 2 个字符串,将两者连结并输出,再将连结后的字符串反向摆列并输出,并求连结后字符串的长度#include<stdio.h>#include<string.h>main(){int i,len;char a1[51],a2[26],t[51];printf("Please input 2 strings:\n");gets(a1);gets(a2);strcat(a1,a2);printf("The joint string is: %s",a1);len=strlen(a1);printf("\nThe length of the linked string is: %d\n",len);for(i=0;i<len;i++)t[i]=a1[len-i-1];t[len]=0;strcpy(a1,t);printf("The reversed string is: %s\n",a1);}实验五函数应用的程序设计1.要求是:编写一函数,统计字符串中字母、数字、空格和其余字符的个数在主函数中输入字符串并输出统计结果值传递:#include<stdio.h>void fun(char a,int *b){if(a>='A'&&a<='Z'||a>='a'&&a<='z')b[0]++;else if(a>='0'&&a<='9')b[1]++;else if(a==32)b[2]++;else b[3]++;}main(){char a[50];int b[4],i,j,k;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);k=0;while(a[k]!=0){fun(a[k],b);k++;}printf("The string have %d letters, %d numbers, %d spaces, %d other chars\n",b[0],b[1],b[2],b[3]);}}地点传达:#include<stdio.h>void fun(char *a,int *b){int i=0;while(a[i] != 0){if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z')b[0]++;else if((a[i]>='0')&&(a[i]<='9'))b[1]++;elseif(a[i]==32)b[2]++;else b[3]++;i++;}}main(){char a[50];int b[4],i,j;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);fun(a,b);printf("\nThe string have %d letters, %d numbers, %dspaces, %d other chars",b[0],b[1],b[2],b[3]);}}。
单选题1. C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是()。
(A) void (B) long (C) int (D) doubleC难度:较易??分值:1.0??2. 下面叙述错误的是()。
(A) C源程序可由一个或多个函数组成(B)(C)(D) 注释说明部分只能位于C源程序的最前面D难度:较易??分值:1.0??3. 下面叙述错误的是()。
(A)(B)(C) 预处理命令行必须以分号结束(D) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率D难度:较易??分值:1.0??4. ()语句符合C语言语法。
(A)(B)(C)(D)B难度:较易??分值:1.0??5. C语言中,数组名作为函数调用的实参时,下面叙述正确的是()。
(A) 传递给形参的是数组元素的个数(B) 传递给形参的是数组第一个元素的值(C) 传递给形参的是数组中全部元素的值(D) 形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化D难度:较易??分值:1.0??6.(A)(B)(C)(D)A难度:较易??分值:1.0??7. 下面关于字符数组的叙述中,错误的是()。
(A)(B)(C)(D)A难度:较易??分值:1.0??8. 下面叙述正确的是()(A) 每行最多只能写两条语句(B) 程序中必需含有自定义函数(C)(D)D 难度:较易??分值:1.0??9. 以下叙述中正确的是( )。
(A)(B)(C)(D)A 难度:较易??分值:1.0??10. ( )是关于C 语言数据类型的正确叙述。
(A)变量必须先定义后使用(B)不允许使用空类型(C)枚举类型不是基本类型(D)数组并不是构造类型A 难度:较易??分值:1.0?11. ( )为正确的用户标识符。
(A)(B)(C)(D)D 难度:较易??分值:2.0??12. C 语言的下列运算符中,优先级最高的运算符是( )。
(A)(B)(C)(D)A 难度:较易??分值:2.0??13.(A) 16, 8(B) 8, 8(C) 16, 16(D)8, 16 A 难度:较易??分值:2.0??14. 不能对二维数组a 进行正确初始化的语句是( )。
大工12秋《C/C++语言程序设计》在线作业2答案来源:一、单选题(共10 道试题,共60 分。
)V1. ( )是给对象取一个别名,它引入了对象的同义词。
A. 指针B. 引用C. 枚举D. 结构答案:B满分:6 分2. 下述静态数据成员的特性中,( )是错误的。
A. 说明静态数据成员时前边要加修饰符staticB. 静态数据成员要在类体外进行初始化C. 引用静态数据成员时,要在静态数据成员名前加“类名”和作用域运算符D. 静态数据成员不是所有对象所共用的答案:D满分:6 分3. 已知p是一个指向类Sample数据成员m的指针,s是类Sample的一个对象。
如果要给m赋值为5,( )是正确的。
A. s.p=5B. s->p=5C. s.*p=5D. *s.p=5 答案:C满分:6 分4. ( )是析构函数的特点。
A. 一个类只能定义一个析构函数B. 析构函数名与类名相同C. 析构函数的函数体只能在类体内D. 析构函数可以有一个或者多个参数答案:A满分:6 分5. 下列表示引用的方法中,( )是正确的。
A. int &x=m;B. int &y=10;C. int &z;D. float &t=&m; 答案:A满分:6 分6. 有关成员函数的说法错误的是( )。
A. 成员函数一定是内联函数B. 成员函数可以重载C. 成员函数可以设置参数的默认值D. 成员函数可以是静态的答案:A满分:6 分7. 有关类的说法错误的是( )。
A. 类是一种用户自定义的数据类型B. 只有类中的成员函数才能存取类中的私有数据C. 在类中,如果不作特别说明,所指的数据均为私有类型D. 在类中,如果不作特别说明,所指的成员函数均为公有类型答案:D满分:6 分8. ( )不是构造函数的特征。
A. 构造函数的函数名和类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必须指定类型说明答案:D满分:6 分9. 有关类和对象的说法错误的是( )。
《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题3.,2.,-8.2. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf("%f\n",x+a%3*(int)(x+y)%2/4); }(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf("%f\n",(float)(a+b)/2+(int)x%(int)y); }第三章顺序结构程序设计一选择题A C D C C二操作题1. x=3,a=2,b=32. z=12.3. 1 2 1a2 1 2三.编程题编程题1. 某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。
实验二 选择结构的程序设计1.编程计算下面的分段函数。
4x-8 -1≤x <0y= 3x 2+10x-1 0≤x <18x 3-3x 2+2x-1 1≤x <2 (1)事先编好程序和流程图。
要求用if 语句结构实现,注意数据类型和输入提示语句。
#include <stdio.h> main ( ) {float x,y;printf ("input x:\n"); scanf ("%f",&x); if (x>=-1&&x<2) {if (x>=-1&&x<0)y=4*x-8;else if (x>=0&&x<1)y=3*x*x+10*x-1;elsey=8*x*x*x-3*x*x+2*x-1;printf("y=%10.2f",y); } elseprintf ("DATA ERROR!"); }(2)将程序运行六遍,分别从键盘上输入-1,-0.5,0,0.5,1,1.5这六个数,记录下运行结果并核对结果的正确性。
(3)再将程序运行二遍,分别从键盘上输入-3.5和2二个数,记录下运行结果并核对结果的正确性。
键盘的输入 分析结果 运行结果 调试说明键盘输入-1 键盘输入-0.5 键盘输入0 键盘输入0.5 键盘输入1 键盘输入1.5键盘的输入观察到的运行结果程序的错误之处和调试④修改程序,使之能正确处理任何数据。
当输入数据大于等于2或小于-1时,通知用户“Data Error ”,程序结束。
4.水果店有苹果,一级5.50元/kg ,二级4.20元/kg ,三级3.00元 /kg ,四级2.50/kg ,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾客的钱数。
(1)事先编好程序,分别用if 语句和用switch 语句结构实现,要求程序能正确处理任何数据。
单选题1. C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是()。
(A) void (B) long (C) int (D) doubleC难度:较易分值:1.0 2. 下面叙述错误的是()。
(A) C源程序可由一个或多个函数组成(B)(C)(D) 注释说明部分只能位于C源程序的最前面D难度:较易分值:1.0 下面叙述错误的是()。
3.(A)(B)(C预处理命令行必须以分号结束)(DC源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率)D难度:较易分值:1.0 4. ()语句符合C语言语法。
(A)(B)(C)(D)B难度:较易分值:1.0 5. C语言中,数组名作为函数调用的实参时,下面叙述正确的是()。
(A) 传递给形参的是数组元素的个数(B) 传递给形参的是数组第一个元素的值(C) 传递给形参的是数组中全部元素的值(D) 形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化D难度:较易分值:1.0 6.(A)(B)(C)(D)A难度:较易分值:1.0 7. 下面关于字符数组的叙述中,错误的是()。
(A)(B)(C)(D)A难度:较易分值:1.0 8. 下面叙述正确的是()(A)每行最多只能写两条语句 (B) 程序中必需含有自定义函数 (C) (D)D 难度:较易 分值:1.09. 以下叙述中正确的是( )。
(A)(B)(C)(D)A 难度:较易 分值:1.010. ( )是关于C 语言数据类型的正确叙述。
(A)变量必须先定义后使用(B)不允许使用空类型(C)枚举类型不是基本类型(D)数组并不是构造类型A 难度:较易 分值:1.011. ( )为正确的用户标识符。
(A) (B)(C) (D)D 难度:较易 分值:2.012. C 语言的下列运算符中,优先级最高的运算符是( )。
(A) (B)(C) (D)A 难度:较易 分值:2.013.(A)16, 8 (B) 8, 8 (C) 16, 16 (D)8, 16 A 难度:较易 分值:2.014. 不能对二维数组a 进行正确初始化的语句是( )。
(A) (B) (C)(D)A 难度:较易 分值:2.015. 构成C 源程序的基本单位是( )(A)语句 (B) 变量 (C) 运算符 (D)函数 D 难度:较易 分值:2.016. main( )函数的位置( )。
(A)必须在自定义函数前面(B)可以在自定义函数后面(C)必须位于程序的最前面(D)必须在自定义函数后面B 难度:较易 分值:2.017.(A)(B)(C)(D)C难度:较易分值:2.0 18. ()是正确的叙述。
(A)(B)(C)(D)A难度:较易分值:2.0 19.(A)(B)(C)(D)A难度:较易分值:2.0 20.(A)(B)(C)(D)D难度:较易分值:2.021. 在函数调用时,以下说法正确的是()(A) 函数调用后必须带回返回值(B) 实际参数和形式参数可以同名(C) 函数间的数据传递不可以使用全局变量(D) 主调函数和被调函数总是在同一个文件里B难度:较易分值:1.0 22. 以下在任何情况下计算平方数时都不会引起二义性的宏定义是()。
(A)(B)(C)(D)D难度:较易分值:1.0 23. 如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是()(A)(B)(C)(D)B难度:较易分值:2.0 24. ()为合法的常量。
(A)(B)(C)(D)A难度:较易分值:1.0 25. ()是正确的叙述。
(A)(B)(C) 强制类型转换运算的优先级高于算术运算(D)C难度:较易分值:1.0 26.(A)(B)(C)(D)A难度:较易分值:2.0 27.(A) (B)(C)(D)C 难度:较易 分值:2.028. C 源程序的调试是指对源程序进行( )。
(A)录入与编辑(B)查错与编译 (C)查错与排错 (D)连接与运行C 难度:较易 分值:2.029. 以下说法中正确的是( )(A)字符型变量可以存放字符串 (B)递归调用是指函数调用自己 (C)所有的外部函数只能在本文件中被调用(D)在循环体中break 语句和continue 语句的作用都是结束循环 B 难度:较易 分值:1.030.(A)5 (B) 7 (C) 10 (D)0 B 难度:较易 分值:2.031. 在C语言中,合法的字符常量是( )(A) (B)(C)(D)D难度:较易分值:1.0 32.(A) 4 (B) 3 (C) 6 (D) 5D难度:较易分值:2.0 33.(A) 3 (B) 5 (C) 6 (D) 10B难度:较易分值:2.0 34.(A)(B)(C)(D)A难度:较易分值:2.0 35. C语言整型数据在内存中的代码是用()表示的。
(A) 原码(B) 反码(C) 补码(D) BCD码C难度:较易分值:2.0 36. 下面叙述错误的是()。
(A)(B)(C)(D)A难度:较易分值:1.0 37. C语言函数体由()括起来。
(A)(B)(C)(D)C难度:较易分值:2.0 38.(A)(B)(C)(D)B难度:较易分值:2.0 39.(A)(B)(C)(D)C难度:较易分值:2.0 40. 下面关于C语言变量的叙述中,错误的是()。
(A) 可以用define关键字定义变量(B) 变量名用大小写字母是有区别的(C) C语言允许不同基本类型的变量之间进行混合运算(D) C语言中要求对变量作强制定义的主要理由是:便于确定类型和分配空间A难度:较易分值:2.0 41.(A)(B)(C)(D)B难度:较易分值:1.0.(A)(B)(C)(D)A难度:较易分值:2.0 43.(A)(B)(C)(D)D难度:较易分值:2.0 44.(A)(B)(C)(D)B难度:较易分值:2.0(A)(B)(C)(D)B难度:较易分值:2.0 46. 以下叙述中正确的是()(A) C源程序中注释部分可以出现在程序中任意合适的地方(B)(C) C源程序编译时注释部分的错误将被发现(D) 构成C源程序的基本单位是函数,所有函数名都可以由用户命名A难度:较易分值:2.0 47. 以下属于C语言保留字的是()(A) fopen (B) include (C) get (D) unsignedD难度:较易分值:2.0 48.(A)(B)(C) +(D) -C难度:较易分值:2.0 49. 下面叙述正确的是()。
(A) 程序中必须包含有输入语句(B) 变量按所定义的类型存放数据(C)(D) 每行只能写一条语句B难度:较易分值:2.0 50. ()是不正确的叙述。
(A) 注释说明只能位于一条语句的后面(B) C源程序的基本组成单元是函数(C) C源程序可由一个或多个函数组成(D) 每条语句最后必须有一个分号A难度:较易分值:2.0 51. 错误的叙述是()。
(A) 一个C语言源程序可由一个或多个函数组成(B) 若一条语句较长,也可分写在下一行上(C) C程序必须包含一个main()函数(D) 构成C语言源程序的基本单元是算术表达式D难度:较易分值:2.0 52. 一个C语言源程序是由()(A) 一个主程序和若干子程序组成(B)函数组成 (C)若干过程组成 (D)若干子程序组成A 难度:较易 分值:2.053. C 语言基本数据类型包括( )。
(A)整型、实型、逻辑型(B)整型、实型、字符型(C)整型、字符型、逻辑型(D)整型、实型、字符串型B 难度:较易 分值:2.054.(A)67,D (B) C,D (C) C,68 (D)67,68 A 难度:较易 分值:2.055. ( )为非法的字符串常量。
(A) (B) (C)(D)C 难度:较易 分值:2.056. 下面叙述正确的是( )。
(A)宏展开不占用运行时间,只占用编译时间(B) 预处理命令也是C语句,必须以分号结束(C) 一个源程序只能有一个预编译处理命令行(D) 宏名必须用大写字母表示A难度:较易分值:2.0 57.(A)(B)(C)(D)A难度:较易分值:2.0 58.(A)(B)(C)(D)A难度:较易分值:1.0 59.(A) 0 (B) 10 (C) 9 (D) 8B难度:较易分值:1.0 60. 下面错误的叙述是()。
(A) 预处理命令行必须位于C源程序的起始位置(B)(C)(D) C语言的预处理可以实现宏定义和条件编译的功能A难度:较易分值:1.0 61.(A) 2 (B) 3 (C) 4 (D) 5C。