C语言程序设计题目及解答-09.doc_第1页
C语言程序设计题目及解答-09.doc_第2页
C语言程序设计题目及解答-09.doc_第3页
C语言程序设计题目及解答-09.doc_第4页
C语言程序设计题目及解答-09.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

窗体底端一、判断题(12分)1. 若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。2分 2. 由于宏名与宏体之间以空格相隔,因此宏名中不应再有空格。2分 3. 宏替换就是字符替换,不能进行任何计算。2分 4. 带参的宏替换,在调用时也进行实参与形参的结合,因此它和函数是一回事 5. 以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关。2分 6. 以数组名作函数参数时,数据传递的方向是“双向的”,因此我们可以说,在此情况下,函数带回的返回值可能不止一个。2分 二、选择题(24分)1.下列宏定义命令中,哪一个格式是正确的()D 2分 A. #define pi=3.14159;B. define pi=3.14159C. #define pi=3.14159D. #define pi (3.14159) 2.宏定义为#define div(x,y) x/y; 若语句printf(div(x,y)=%dn,div(x+3,y-3);作宏替换后为()C 2分 A. printf(x/y=%dn,(x+3)/(y-3);B. printf(div(x,y)=%dn,x+3/y-3);C. printf(div(x,y)=%dn,x+3/y-3;);D. printf(x/y=%dn,x+3/y-3;);3.程序中调用了库函数exit,必须包含头文件()B 2分 A. string.hB. stdlib.hC. ctype.hD. math.h 4.定义带参数的宏计算两个表达式的乘积,下列定义中哪个是正确的()C 2分 A. #define muit(u,v) u*vB. #define muit(u,v) u*v;C. #define muit(u,v) (u)*(v)D. #define muit(u,v)=(u)*(v)5.下列程序的输出结果是_。C 2分 main()char ch7=65ab21;int j,s=0;for(j=0;chj=0&chj=9;j+=2)s=10*s+chj-0;printf(%dn,s);A. 12ba56B. 66521C. 6D. 62 6.以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。 void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(%dn,s); 程序运行后的输出结果是_。A 2分 A. 22B. 10C. 34D. 30 7.有以下程序void sort(int a,int n) int i,j,t;for(i=0;in-1;i+=2)for(j=i+2;jn;j+=2)if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(aa,10);for(i=0;i10;i+) printf(%d,aai);printf(); 其输出结果是_。C 2分 A. 1,2,3,4,5,6,7,8,9,10,B. 10,9,8,7,6,5,4,3,2,1,C. 9,2,7,4,5,6,3,8,1,10,D. 1,10,3,8,5,6,7,4,9,2, 8.有以下程序void f(int a,int i,int j) int t;if(ij) t=ai; ai=aj;aj=t;f(a,i+1,j-1);main( ) int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(%d,aai); printf(); 执行后输出结果是_。A 2分 A. 5,4,3,2,1,B. 5,2,3,4,1,C. 1,2,3,4,5,D. 1,2,3,4,5, 9.下面的程序中_错误(每行程序前面的数字是行号)。C 2分 1 #include2 main()3 4 float a3=0.0;5 int i;6 for(i=0;i3;i+) scanf(%d,ai);7 for(i=1;i3;i+)a0=a0+ai;8 printf(%f,a0);9 A. 没B. 第4行C. 第6行D. 第8行 10.若有以下定义语句:char s10,s=abcd;printf(%s,s);则运行结果是_。D 2分 A. 输出abcdB. 输出aC. 输出ab cdD. 编译不通过 11.设已定义char c8=Tianjin和int j,则下面的输出函数调用中错误的是_。D 2分 A. printf(%s,c); B. for(j=0;j8;j+) printf(%c,cj);C. puts(c); D. for(j=0;j8;j+) puts(cj); 12.9.以下程序的输出结果是_。B 2分 main() char cf35=AAAA,BBB,CC; printf(%s,cf1); A. AAAAB. BBBC. BBBCCD. CC 三、程序填空题(44分)1. 功能:数组名作为函数参数,求平均成绩。 12分 float aver(_(1)_ a ) int i; float av,s=a0; for(i=1;i5;i+) s+=ai; av=s/5; _(2)_ (av);void main() float sco5,av; int i; for(i=0;i5;i+) scanf(_(3)_,sco+i); av=aver(sco); printf(average score is %5.2fn,av); (1)答案 4分 float (2)答案 4分 return (3)答案 4分 %f 2. 功能:将一个字符串中的前N个字符复制到一个字符数组中去, 不许使用strcpy函数。 8分 #includevoid main ( ) char str180,str280; int i,n; gets(str1); scanf(%d,&n); for (i=0; _(1)_ ;i+) str2i=str1i; _(2)_; printf(%sn,str2); (1)答案 4分 i=0&j=0;i-) printf(%c,si); printf(n); (1)答案 4分 char p (2)答案 4分 b%16 (3)答案 4分 i=strlen(s)-1 4. 功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c).其中,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序,在程序中用带参数的宏求面积area。 12分 #include#include_(1)_ S(x,y,z) (x+y+z)/2#define AREA(s,x,y,z) sqrt(s*(s-x)*(s-y)*(s-z)int main() double a,b,c,s,area; printf(a,b,c=n); scanf(%lf,%lf,%lf,&a,_(2)_,&c); if(a+bc & b+ca & c+ab) s=_(3)_; area=_(4)_; printf(area=%lfn,area); (1)答案 2分 #define (2)答案 2分 &b (3)答案 4分 S(a,b,c) (4)答案 4分 AREA(s,a,b,c) 四、程序设计题(20分)1. 回文串 10分 题目描述“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。 输入描述每组测试数据包含一个字符串。 输出描述如果一个字符串是回文串,则输出yes,否则输出no. 样例输入levelabcdenoonhaha 样例输出yesnoyesno 答案一:void main() char a100; int i,n=0,q=0; gets(a); for(i=0;ai!=0;i+)n+; for(i=0;in/2;i+)if(ai!=an-i-1) q=1; break; if(q=0)printf(yesn); elseprintf(non); 答案二:void main()char a100;int i,n=0,q=0;gets(a);for(i=0;ai!=0;i+)n+;for(i=0;in/2;i+)if(ai=an-i-1) continue;else q=1;if(q=0)printf(yesn);elseprintf(non); 2. 首字母变大写 10分 题目描述输入一个英文句子,将每个单词的第一个字母改成大写字母。 输入描述测试实例是一个长度不超过100的英文句子。 输出描述请输出按照要求改写后的英文句子。 样例输入i lik

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论