2007-08第二学期C语言试卷A.doc_第1页
2007-08第二学期C语言试卷A.doc_第2页
2007-08第二学期C语言试卷A.doc_第3页
2007-08第二学期C语言试卷A.doc_第4页
2007-08第二学期C语言试卷A.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

西北农林科技大学本科课程考试试卷2007-2008学年第二学期C语言程序设计课程A卷命题教师: 审题教师: 考试成绩: 题目一二三四总分得分阅卷人得分一、单项选择题(下列每题有四个备选答案,请从中选出一个正确答案,并将其写在答题纸编号后相应位置处。答案错选、多选或未选,均不得分。每小题2分,共24分。)1 以下叙述中不正确的是( )。 A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值 D. 不同的函数中可以使用相同名字的变量2 可用作C语言用户标识符的一组标识符是( )。 Avoid define +WORD Ba3_b3 _123 YN Cfor -abc Case D2a DO sizeof3 在下面程序段中循环体执行的次数为( )。 for(int i=0; i n/2) break;A. n/2 B. n/2+1C. n/2-1 D. n-14 循环体至少被执行一次的语句为( )。A. for循环 B. while循环C. do 循环 D. 任一种循环5 在下面的字符数组定义中,哪一个有语法错误( )。 A. char a20= asfdsdfsd; B. char a=x+y=55.; C. char a15; D. char a10= 5 ;6 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为( )。A. 0 B. 4C. 8 D. 67 若定义了函数 int *function(), 则函数function的返回值为( )。A. 整型数 B. 整型数的地址C. 指向函数的指针 D. 函数的地址8 假定一条定义语句为“int a10, x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。A. x=pa3; B. x=*(a+3);C. x=a3; D. x=*pa+3;9 以下函数的返回值是( )。int function(char *x) char *p=x; while(*p+); return(p-x-1);A. 求字符串的长度 B.将字符串x连接到字符串p后面C. 将字符串x复制到字符串p中 D.将字符串x反向存放10若用数组名作为实参调用函数,传递给形参的是( )。 A. 数组的首地址 B. 数组中第一个元素的值C. 数组全部元素的值 D. 数组元素的个数11在C语言程序中,在函数内部定义的变量称为( )。A全局变量 B外部变量 C局部变量 D内部变量12 若sizeof(int)=4;有结构体struct student int num;char name20;char sex;int age;则sizeof(struct student)的值为( )A20 B. 36C 29 D. 32 得分二、程序填空题(将答案写在答题纸相应位置处。每空2分,共24分。)1打印出2至99之间的所有素数。#include#includevoid main() int i,n;for(n=2; _(1)_; n+) int temp=(int)sqrt(n); /求出n的平方根并取整for(i=2; _(2)_; i+)if(n%i=0) _(3)_; if(itemp) printf(%d ,n);printf(n);2. 采用辗转相除法求出两个正整数的最大公约数。 #include void main() int a,b; printf(请输入两个正整数: ); scanf(%d%d,&a,&b); while(a=0 | _(4)_) printf(重新输入a、b值: ); scanf(%d%d,&a,&b); while(b) int r; r=a%b; _(5)_; _(6)_; /分别修改a和b的值 printf(%d,a); /输出最大公约数 3. 输入一个字符串,内有数字和非数字字符,例如:a123sas352sdfjl,将其中连续的数字作为一个整数 ,存放到一个数组中。统计有几个整数,并输出这些数,如字符串“a123sas352sdfjl”输出:123 352。#include stdio.hvoid main(int argc, char* argv) char a1000; /存放输入的字符串char *p = a;int k,j,count=0, Flag=0; /Flag的值为1或0,表示是否出现数字int num100; /用来存放整数for( k = 0; k 100; k +)numk = _(7)_; /初始化数组gets(a); /输入字符串while(*p != 0) if(!(0=*p & *p=9)Flag=0; else if(Flag=0) Flag=_(8)_; /出现数字numcount=*p-0;count+; elsenumcount-1=_(9)_; /存放连续数字p+;printf(整数个数:%dn, count);for( j=0;j= a & stri= z | _(10)_ )_(11)_;_(12)_;得分三、读程序,写出运行结果(将答案写在答题纸相应位置处。每题5分,共25分)1. 下列程序的输出结果是_#include void main() int a8=25,48,32,85,64,18,48,29; int max,min; max=min=a0; for(int i=0; i8; i+) if (maxai) min=ai; printf(max=%dt,max); printf(min=%dn,min);2. 下列程序的输出结果是_ #include void main() int x=5; switch(2*x-3) case 4: printf(%d ,x); case 7: printf(%d ,2*x+1); case 10: printf(%d ,3*x-1); default: printf(defaultn); printf(switch end. ); 3. 当输入2 59 60 并按回车后,下列程序的输出结果是_。#include void main( ) int ri, repeat;int mark;scanf(%d, &repeat);for(ri=1; ri= 60)printf(Pass);elseprintf(Fail);4下列程序的输出结果是_。#include int f(int m) static int k=2; k+;return k+m;void main( ) int s;s=f(2);printf(%d, %dn, s, f(s);5. 下列程序的输出结果是_。#include#includevoid main()char a510= student,worker,soldier,cadre,peasant;char s110, s210;strcpy(s1,a0); strcpy(s2,a0); for(int i=1;i0) strcpy(s1,ai); if(strcmp(ai, s2)0) strcpy(s2,ai); printf(%s %s,s1,s2); 得分四、程序设计题(将答案写在答题纸相应位置处。共27分)。1从键盘输入一行字符串,分别统计其中英文字母、空格、数字和其他字符的个数;(7分)2文件stud.txt中有5个学生的学号、姓名、3门课成绩如下:06101Wang988479.506102Li86839006107Fun 9175.58306121Ling83847606125Yuan786971 从文件stud.txt中读取以上数据,找出总成绩最好的那个学生,将该学生的信息输出到新文件best.dat中。(10分) 3从键盘输入20个整数到数组a中,任选一种排序方法将其从小到大排序,输出结果。然后再从键盘输入一个整数t,将t按原来顺序插入到a中,并输出插入后的结果。(10分)答题纸一、单项选择题(答案错选、多

温馨提示

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

评论

0/150

提交评论