1、考试卷( A )卷考试课程程序设计基础考试日期成 绩课程号教师号任课教师姓名考生姓名学号(8位)年级专业注意:(1) 所有答案均写在答题纸上,写在试卷上无效;(2) 考试结束后请将试卷和答题纸一起交上来。(3) 试题中若出现C源代码,考虑源代码的大小写,不考虑标点符号的中英文状态;(4) 本试题中C代码的开发环境为Microsoft Visual C+6.0,运行环境为Windows2000/XP系统;(5) 当题目中只有程序片段时,假设完整程序已经具有其它必要代码且能够正确运行,如包含相应的库文件、main()函数的定义等。 试题一、单项选择题(每小题 2 分,共 20 分)1. 下列可用于
2、C语言用户标识符的一组是( )A. void, define, WORDB. a3_b3, _123,CarC. For, -abc, IF CaseD. 2a, DO, sizeof2. 以下叙述中正确的是( )。A. 构成C程序的基本单位是函数B. 可以在一个函数中定义另一个函数C. main( )函数必须放在其他函数之前D. 所有被调用的函数一定要在调用之前进行定义3. 程序段( )的功能是将变量u、s中的最大值赋给变量t. A、if (us) t=u; t=s; B、t=u; if (ts) t=s; C、if (us) t=s; else t=u; D、t=s; if (ut) t=
3、u;4. 已知i=3,则printf (“%d”, -i+) 的输出结果为( ) A、-4 B、 -3 C、-2 D、 以上均不对5. 有数组定义语句”char a20”, 则正确的输入语句为( )A、scanf(“%s”, &a) B、scanf(“%s”, a) C、 gets(a20) D、gets(a) 6. 下面程序段的运行结果是( )。char *s=abcde; s+=2;printf(%d,s); A. cde B. 字符c C. 字符c的地址 D. 无确定的输出结果7. 以下能正确定义一维数组的选项是( )。A. int a5=0,1,2,3,4,5;B. char a=A,
4、B,C;C. int a5=0123;D. char a=0,1,2,3,4,5,0;8. 设有以下说明语句 typedef struct int n; char ch8; PER; 则下面叙述中正确的是( )。A. PER 是结构体变量名B. PER是结构体类型名C. typedef struct 是结构体类型 D. struct 是结构体类型9 对于以下递归函数f,调用 f(3) 的返回值是( )。 int f(int n) if(n) return f(n-1) + n; else return n; A、10 B、6 C、3 D、010. 指针变量 p1,p2 类型相同,要使 p1,p
5、2 指向同一变量,哪个语句是正确的( )A、p2=*&p1; B、p2=*p1; C、p2=&p1; D、 p2=*p1;试题二、程序填空题。按程序功能,在划线部分填写适当的内容(每空2分,共20分)1. 功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。#include int main() int length(_(1)_); int len; char str20; printf(please input a string:n); scanf(%s,str); len=length(_(2)_); printf(the string has %d chara
6、cters.,len); int length(char *p) int n; n=0; while(*p!=0) _(3)_; p+; return n;2. 功能:将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。#includevoid strcopy(char *str1,_(1)_,int m) char *p1,*p2; p1= _(2)_; p2=str2; while(*p1) *p2+=_(3)_; *p2=0;void main() int i,m; char str180,str280; gets(str1); scanf(%d,&m); strcopy(s
7、tr1,_(4)_,m); puts(str1); puts(str2); 3. 功能:函数sort是使用选择法将一维整型数组中各元素按值从大到小排序。 void sort( int a , int n) int i, j,k,temp; for(i=0; in-1; i+) (1) for(j=i+1; j n; j+) if( (2) ) (3) if(k!=i) temp=ak; ak=ai; ai=temp;试题三、程序阅读题:阅读程序,写出程序的正确输出结构(每题5分,共30分)1 以下程序运行后的输出结果是 #include int main(void) int i,j,x=0;
8、for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2) break; +x; x+; printf(x=%dn,x); return 0;2 以下程序运行后的输出结果是 #include int main(void) char *name=John,Goldy,Richard,Jackson,Lenovika;char *p;int i;p=name;for(i=0;i5;i+) printf(%c,%sn,*p,*p+i); p+; return 0; 3 输入15246,以下程序运行后的输出结果是 #includevoid main()int a,b;scan
9、f(%d,&a);b=0;while(a0)b = b*10+a%10;a = a/10;printf(%dn,b); 4 以下程序运行后的输出结果是 #include int f(int a) int b=0; static int c=3; a=c+,b+; return a;int main(void) int a = 2,i,k; for(i=0;i2;i+) k= f(a+); printf(%dn,k); return 0;5 以下程序运行后的输出结果是 #include int i;int main(void) void prt(); for(i = 0;i5;i+) prt()
10、; return 0;void prt() for(i=0;i5;i+) printf(%c,*); printf(n);6 以下程序运行后的输出结果是 #define SQURARE(n) (n)*(n)#include int main(void) int i=1; while(iak (3) k=j 试题三、程序阅读题:阅读程序,写出程序的正确输出结构(每题5分,共30分)1. x=62. J,JohnG,oldyR,chardJ,ksonL,vika3. 642514. 45. *6. 19试题四、程序设计题(共 30 分)1.(8分)#include #include typedef
11、 struct _point float x;float y; point;void main()point a,b;float dist;prinf(“Please input point a:n”);scanf(“%f%f”,&a.x,&a.y);prinf(“Please input point b:n”);scanf(“%f%f”,&b.x,&b.y);dist=(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);dist=sqrt(dist);printf(“The distance between point a and point b is:%.2f”
12、,dist);2.#include void deldigits(char *str)char *p=str;while(*p!=0)if(*p=0 & *p=9)p+;else *str+=*p+;*str=0;/* void main()char item100;gets(item);deldigits(item);puts(item);*/3.#include int main(void)FILE *fp;int i=1;double x,sum=0.0,t=1.0;fp=fopen(d:programresult.txt,w);printf(please input x:);scanf(%lf,&x);while(t=1e-7)sum+=t; t*=x/(i+); printf(The sum is %lfn,sum); fprintf(fp,%lf, sum); fclose(fp); return 0;第 6 页 共 6 页