河南理工大学-《C语言程序设计》2010-2011-2A(2011-5-26)试卷-及答案.doc_第1页
河南理工大学-《C语言程序设计》2010-2011-2A(2011-5-26)试卷-及答案.doc_第2页
河南理工大学-《C语言程序设计》2010-2011-2A(2011-5-26)试卷-及答案.doc_第3页
河南理工大学-《C语言程序设计》2010-2011-2A(2011-5-26)试卷-及答案.doc_第4页
河南理工大学-《C语言程序设计》2010-2011-2A(2011-5-26)试卷-及答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

。专业班级: 姓名: 学号: 密封线河南理工大学 20102011 学年第 2 学期专业班级: 姓名: 学号: 密封线C语言程序设计试卷(A卷)考试方式:闭卷 本试卷考试分数占学生总评成绩的 70 %注:请将答案填写在答题纸上,写在试卷上,不得分。一、单项选择题(每题1分,共30分) ,在每小题列出的四个选项中只有一个选项是符合题目要求的,请在答案卡上将正确答案所对应选项的字母涂黑。1. 以下选项中正确的语句组是_。A) char s;s=book! B) char *s;s=book!;C) char s10;s=book! D) char *s;s=book!;2.C语言源程序文件的后缀是_。A) .c B) .obj C) .exe D) .txt3.以下选项中不正确的常量是_。A)a B)a C)5 D)b4下列不正确的转义字符是 。 A) B) C)074 D)05.C语言程序设计中可以对程序进行注释,注释部分可以用_符号括起来。A) B) C)/* */ D) */ /* 6.在一个C程序中,main函数出现的位置是 。A)必须在程序的最后面 B)可以在任意地方C)必须在程序的最前面 D)必须在系统调用的库函数的后面7.若已定义x和y为double类型,则表达式x=2,y=x+3/2 的值是 。A)3.500000B)3C)2.000000 D)3.0000008.设x、y均为float类型变量,下面不正确的赋值语句是 。A)x=x+1; B)y=(x%2)/10; C)x*=y+8; D)x=y=0; 9.若有以下定义,则能使其值为3的表达式是 。int k=7,x=12;A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)10若有以下定义和语句,则输出结果是 。 char c1=b,c2=e; printf(%d%,%cn,c2-c1,c2-a+A);A)%3,E B)3%,E C)2%,E D)%2,E 11设x、y和z是int型变量,且x3,y4,z5,则下面表达式中值为0的是。A)x&y B)x=y C)x|y+z&y-z D)!(xy)&!z|1)12分析以下C程序,其正确的运行结果是 (注:表示空格)。#include main() long y=-43456; printf(y=%-8ldn,y); printf(y=%-08ldn,y); printf(y=%08ldn,y); printf(y=%+8ldn,y);A) y=-43456 B) y=-43456 y=-43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456C) y=-43456 D)y=-43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y=-43456 y=+4345613.设整型变量s,t,c1,c2,c3,c4的值均为2,则执行语句(s=c1= =c2)|(t=c3c4)后,s,t的值为 。 A)1,2 B)1,1 C)0,1 D)1,014阅读以下程序,当输入数据的形式为25,13,10,正确的输出结果为 。#include main() int x,y,z; scanf(%d%d%d,&x,&y,&z); printf(x+y+z=%dn,x+y+z);A)x+y+z=48 B)x+y+z=35 C)x+z=35 D) 不确定值15若k=4,a=3,b=2,c=1,则表达式ka?k:cb?c:a的值是 。 A)4 B)3 C)2 D)1 16执行以下程序后的输出结果是 。 main() char k; int i;for(i=1;i3;i+) scanf(%c,&k); switch(k) case 0: printf(another ); case 1: printf(number );程序运行是,从键盘输入:01(注:表示空格),程序执行后的输出结果是 。A)another number B)another number another C)another number number D)number number 17if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 。A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值18.下面程序段的运行结果是 。 char c=tv0willn; printf(%d,strlen(c);A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定19.在函数调用时,若实参为变量,则下列关于函数形参和实参的叙述中正确的是 。A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元20下面关于函数参数的说法不正确的是 。 A)形参可以是常量、变量或表达式 B)实参可以是常量、变量或表达式 C)在带参函数的定义中,必须指定形参的类型 D)形参应与其对应的实参类型一致21以下程序的输出结果是 。#include #define MIN(x,y) (x)(y)?(x):(y) main() int i,j,k; i=10; j=15; k=10*MIN(i,j); printf(%dn,k);A)15B)100 C)10 D)15022以下一维数组a的定义中,正确的是 。 A)int a(10) B) int n=10,an; C)int n; D)#define SIZE 10 scanf(%d,&n); int aSIZE;int an23若有定义:int a43,(*prt)3=a,*p=a0;,则不能正确表示数组元素a12的表达式是 。A) *(*(prt+1)+2) B) *(p+5) C) (*(prt+1)2 D) *(*prt+1)224有以下程序:#include#includemain() int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int); *a=1;*b=2;*c=3; a=b; printf(%d,%d,%dn,*a,*b,*c);程序运行后的输出结果是 。A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,325. 以下程序的输出结果是 。struct st int x; int *y;*p;int dt4=10,20,30,40;struct st aa4=50,&dt0,60,&dt1,70,&dt2,80,&dt3;main() p=aa; printf(%d ,+p-x); printf(%d ,(+p)-x); printf(%dn,+(*p-y);A)10 20 20 B)51 60 21 C)51 60 11 D)60 70 3126.设有定义:struct char mark12;int num1;double num2; t1,t2;,若变量均已正确赋初值,则以下语句中错误的是 。A)t1=t2; B)t2.num1=t1.num1; C)t2.mark=t1.mark; D)t2.num2=t1.num2;27.有以下程序:#includeint f(int x);main()int n=1,m;m=f(f(f(n);printf(%dn,m);int f(int x)return x*2;程序运行后的输出结果是 。A)1 B)2 C)4 D)828. 有以下程序#include struct ordint x,y;dt2=1,2,3,4;main()struct ord *p=dt;printf(%d,+(p-x);printf(%dn,+(p-y);程序运行后的输出结果是 。A)1,2 B)4,1 C)3,4 D)2,329. 有以下程序#include main()unsigned char a=8,c;c=a3;printf(%dn,c);程序运行后的输出结果是 。A)32 B)16 C)1 D)030.设fp已定义,执行语句fp=fopen(file,w);后,以下针对文本文件file操作叙述的选项中正确的是 。A)写操作结束后可以从头开始读 B)只能写不能读C)可以在原有内容后追加写 D)可以随意读和写二、填空题(每空2分,共20分)。 31.一个最简单的C语言程序至少应包含一个 【1】 函数。32.若a是int型变量,且a的初值为3,则计算表达式a+=a-=a*a后a的值为 【2】 。33.若x=2,y=3,则x&y的结果是 【3】 。34.struct是关键字,是 【4】 类型的标志。35.以下程序的运行结果是 【5】 。#define MAX(a,b) (ab?a:b)+1main() int i=6,j=8,k; printf(%dn,MAX(i,j);36.下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,请填空。main() int i,j;for(i=0; 【6】 ;i+)j=i*10+9;if(j%3!=0)continue;printf(%d,j);37.用for循环打印1 4 7 10 13 16 19 22 25,请完善printf函数。for(i=1;i=9;i+)printf(%3d, 【7】 );38.下面程序的运行结果是 【8】 。#include main()char a80,*p=AbabCDcd;int i=0,j=0;while (*(p+)!=0) if(*p=a&*p=z)ai=*p;i+;ai=0;puts(a);39.以下程序的运行结果是 【9】 。#include struct NODEint k;struct NODE *link;main()struct NODE m5,*p=m,*q=m+4;int i=0;while(p!=q)p-k=+i;p+;q-k=i+;q-;q-k=i;for(i=0;i5;i+)printf(%d,mi.k);printf(n);40.rewind函数的功能将文件的读写指针移动到文件的【10】。三、程序改错题。每个/*found*/下面的语句中都有一处错误,请将错误的地方改正。(每题4分,共20分)41. 利用插入排序法对字符串中的字符按从小到大的顺序进行。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中;以此类推。#include #include #define N 100main() int i,j,n; char strN=asdfsdfsdf,ch; n=strlen(str); for(i=1;i=0) | (chstrj) strj+1=strj; j-; strj+1=ch; printf(The string after sorting : %snn,str);42.函数fun的功能是应用递归算法求某数b的平方根。求平方根的迭代公式如下:# include # include /*found*/double fun(double b,x0) double x1,y; x1=(x0+b/x0)/2.0; /*found*/ if(abs(x1-x0)=1e-6) y=fun(b,x1); else y=x1; return y;main() double n; printf(Enter n: ); scanf(%lf,&n); printf(The square root of %lf is %lfn,n,fun(n,1.0);43. 函数fun的功能是:从3个红球、5个白球和6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回,正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。#include int fun()int i,j,k,sum=0;printf(The result :nn);/*found*/for(i=0;i=3;i+)for(j=1;j=0&K=6)sum=sum+1;printf(red:%4d white:%4d black:%4dn,i,j,k);return sum;main()int sum;sum=fun();printf(sum=%4dnn,sum);44.函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。#include long fun(int x,int y,long *p)int i;long t=1;/*found*/for(i=1;iy;i+)t=t*x;*p=t;/*found*/t=t/1000;return t;main()long t,r;int x,y;printf(ninput x and y:);scanf(%ld%ld,&x,&y);t=fun(x,y,&r);printf(nnx=%d,y=%d,r=%ld,last=%ldnn,x,y,r,t);45.函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如:若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。#include int fun(int a,int b)int r,t;if(ab)/*found*/t=a;b=a;a=t;r=a%b;while(r!=0) a=b;b=r;r=a%b;/*found*/return (a);main() int num1,num2,a; printf(input num1 num2:); scanf(%d%d,&num1,&num2); printf(num1=%d num2=%dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);四、程序设计(共3题,每题10分,共30分)46. 编程实现下列式子的和值。47. 对NN矩阵,以主对角线为对称线,将对称元素相加并将结果存放在下三角元素中,右上三角元素置0。例如,若N=4,有下列矩阵:21 12 13 24 21 0 0 025 16 47 38 计算结果为:37 16 0 029 11 32 54 42 58 32 042 21 33 10 66 59 87 1048.请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #define N 80int fun(char *s)main()char lineN;int num=0; printf(Enter a string:n); gets(line); num=fun(line); printf(The number of word is:%dnn,num);2010-2011-2C语言程式设计参考答案(A卷) 一、单项选择题(每题1分,共30分) 1.D2.A3.A4.C5.C6.B7.D 8.B 9.D10.B 11.D12.C 13.D 14.D 15.D 16.A 17.D 18.B 19.D 20.A21.A 22.D 23.D 24.A 25.B 26.C 27.D 28.D 29.C 30.B二、程序填空题(本题共10个空,每空2分,共20分)31 main(或主)32 -12 33 2 34 结构体 35 9 36 i=9(或i=0) | (ch=0) |&(ch=1e-6)改为if(fabs(x1-x0)=1e-6),即将abs改为fabs43. (1)if(K=0&K=0&k=6),即将大写字母K改为小写字母k。 (2)for(i=0;i=3;i+)改为for(i=1;i=3;i+),即将i=0改为i=144. (1)将t=t/1000 改为t=t%1000,即将/改为%。 (2)将for(i=1;iy;i+)改为for(i=0;iy;i+),即将i=1改为i=045.(1)将t=a;b=a;a=t;改为t=a;a=b;b=t;或其他交互方式。(2)return (a)改为return (b),即将a改为b。四、程序设计(共3题,每题10分,共30分)编程的改题原则,程序算法编写正确,有一个语法错误的可以

温馨提示

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

最新文档

评论

0/150

提交评论