资源描述:
《2007-08第二学期C语言试卷A》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西北农林科技大学本科课程考试试卷2007-2008学年第二学期《C语言程序设计》课程A卷命题教师:审题教师:考试成绩:题目一二三四总分得分阅卷人得分一、单项选择题(下列每题有四个备选答案,请从中选出一个正确答案,并将其写在答题纸编号后相应位置处。答案错选、多选或未选,均不得分。每小题2分,共24分。)1.以下叙述中不正确的是()。A.在一个函数中,可以有多条return语句B.函数的定义不能嵌套,但函数的调用可以嵌套C.函数必须有返回值D.不同的函数中可以使用相同名字的变量 2.可用作C语言用户标识符的一组标识符是()
2、。 A.voiddefine+WORD B.a3_b3_123YN C.for-abcCase D.2aDOsizeof3.在下面程序段中循环体执行的次数为()。for(inti=0;in/2)break;A.n/2B.n/2+1C.n/2-1D.n-14.循环体至少被执行一次的语句为()。A.for循环B.while循环C.do循环D.任一种循环5.在下面的字符数组定义中,哪一个有语法错误()。A.chara[20]="asfdsdfsd";B.chara[]="x+y=55.";C.c
3、hara[15];D.chara[10]='5';第10页共10页6.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。A.0B.4C.8D.67.若定义了函数int*function(),则函数function的返回值为()。A.整型数B.整型数的地址C.指向函数的指针D.函数的地址8.假定一条定义语句为“inta[10],x,*pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为()。A.x=pa[3];B.x=*(a+3);C.x
4、=a[3];D.x=*pa+3;9.以下函数的返回值是()。intfunction(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(
5、int)=4;有结构体structstudent{intnum;charname[20];charsex;intage;};则sizeof(structstudent)的值为()A.20B.36C29D.32第10页共10页得分二、程序填空题(将答案写在答题纸相应位置处。每空2分,共24分。)1.打印出2至99之间的所有素数。#include#includevoidmain(){inti,n;for(n=2;___(1)___;n++){inttemp=(int)sqrt(n);//求出
6、n的平方根并取整for(i=2;___(2)___;i++)if(n%i==0)___(3)___;if(i>temp)printf("%d",n);}printf("");}2.采用辗转相除法求出两个正整数的最大公约数。#includevoidmain(){inta,b;printf("请输入两个正整数:");scanf("%d%d",&a,&b);while(a<=0
7、
8、__(4)___){printf("重新输入a、b值:");scanf("%d%d",&a,&b);}while(b){int
9、r;r=a%b;___(5)___;___(6)___;//分别修改a和b的值}printf("%d",a);//输出最大公约数}3.输入一个字符串,内有数字和非数字字符,例如:a123sas352sdfjl,将其中连续的数字作为一个整数,存放到一个数组中。统计有几个整数,并输出这些数,如字符串“a123sas352sdfjl”输出:123352。#include"stdio.h"voidmain(intargc,char*argv[])第10页共10页{chara[1000];//存放输入的字符串char*p=a;in
10、tk,j,count=0,Flag=0;//Flag的值为1或0,表示是否出现数字intnum[100];//用来存放整数for(k=0;k<100;k++)num[k]=__(7)___;//初始化数组gets(a);//输入字符串while(*p!=' '){if(!('0'<=*p&&*p<='9'))Fla