您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > C语言程序设计期末考试试题1
本试题来自年华似水论坛期末考试如若出现原题,纯属巧合学号:姓名:……………………………………密…………封……………线…………………………………注意:所有试题答案应写在答题纸上,否则本题无分数一二三四五六七八九总分一、选择题(每小题2分,共30分)1、C语言中用于结构化程序设计的三种基本结构是()A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue2、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()A)地址传递B)单向值传递c)由实参传给形参,再由形参传回实参D)传递方式由用户指定3、在一个C程序中()A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置4、当调用函数时,实参是一个数组名,则向函数传送的是()A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值5、以下程序的输出结果是()#include“stdio.h”maini(){intx=20,z;z=++x;z+=x;printf(“z1=%d\n”,z);z=x--;z+=x;printf(“z2=%d\n”,z);}A)z1=42z2=41B)z1=41z2=42C)z1=41z2=41D)z1=42z2=426、以下程序运行后,输出结果是()#include“stdio.h”main(){staticinta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];printf(“%d\n”,*(p+5)+*(*(ptr+1)+2));}A)9B)10C)11D)127、以下程序输出结果是()main(){intm=5;if(m++5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}学号:姓名:……………………………………密…………封……………线…………………………………A)7B)6C)5D)48、当执行以下程序段时()x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误9、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是()A)if(s1s2)S;B)if(strcmp(s1,s2))S;C)if(strcmp(s2,s1)0)S;D)if(strcmp(s1,s2)0)S;10、在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用D)C语言中不允许这样的递归调用11、以下程序运行后,输出结果是()#include“stdio.h”#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf(“%4.1f\n”,S(a+b));}A)49.5B)9.5C)22.0D)45.012、有以下程序main(){char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}执行后输出结果是()A)2B)3C)4D)513、若有下面的说明和定义,则sizeof(structaa)的值是()第2页共8页学号:姓名:……………………………………密…………封……………线…………………………………structaa{intr1;chari;chark[10];}s;A)11B)12C)13D)1414、下面程序的输出结果是()main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(%d\n,*p+9);}A)0B)1C)10D)915、下列程序的运行结果是()voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(%d%d,a,b);}A)63B)36C)编译出错D)00二、填空题(每空1分,共10分)1、在C语言中,变量名必须以【1】或【2】开头,后面可以跟若干个字母、数字或下划线。2、设a=1,b=2,则表达式ab?a:b+1的值是【3】。3、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&&(n=cd)运算后,n的值位为【4】。4、在格式输入中,内存地址表中必须是【5】,不能是变量名。5、循环的嵌套是指一个循环体内又包含了另一个完整的【6】。6、在C语言中,对内存数据的存取有【7】和【8】两种方法。7、数组是相同数据类型元素的集合,用统一的数组名来表示,每一个元素用【9】来区分。8、【10】是指存储在外存储器上的数据的集合。第3页共8页学号:姓名:……………………………………密…………封……………线…………………………………三、写出下列程序运行结果(每题4分,共20分)1、以下程序运行后的输出结果是【1】。structs{intx,y;}data={10,100};main(){structsp=data;printf(%d\n,++(p.x));}2、有以下程序voidf(inty,int*x){y=y+*x;*x=*x+y;}main(){intx=2,y=4;f(y,&x);printf(“%d,%d\n”,x,y);}执行后输出的结果是【2】。3、以下程序的输出结果是【3】。main(){ints,i;for(s=0,i=1;i3;i++,s+=i);printf(%d\n,s);}4、以下程序的输出结果是【4】。voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(pa+4){f(p,q);p++;q--;}第4页共8页学号:姓名:……………………………………密…………封……………线…………………………………for(i=0;i8;i++)printf(%d,,a);}5、有以下程序#include“stdio.h”main(){FILE*fp;inti,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i4;i++)fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”,&k,&n);printf(“%d%d\n”,k,n);fclose(fp);}其输出结果是【5】四、完善程序(每空2分,共20分)1、下面程序实现字符串复制以及计算字符串长度功能,请填空。intstr_copy(str1,str2)char*str1,*str2;{intk;k=0;while(【1】){str2[k]=str1[k];k=k+1;}str2[k]=【2】;return(【3】);}#includestdio.hmain(){charstr1[20],str2[20];intk;printf(inputstr1:);scanf(%s,str1);printf(str1=%s\n,str1);k=str_copy(【4】);printf(str2=%s\n,str2);第5页共8页学号:姓名:……………………………………密…………封……………线…………………………………printf(k=%d\n,k);}2、以下函数的功能是计算s=1+1/2!+1/3!+……+1/n!,请填空。doublefun(intn){doubles=0.0,fac;inti;【5】;for(i=1;i=n;i++){fac=【6】;s=s+1/fac;}return【7】;}3、顺序输出50——100之间的素数。#include”stdio.h”#include”math.h”main(){intj=0,n,k,i,flag;for(【8】n100;n=n+2){k=sqrt((double)n);i=2;flag=0;while(【9】)&&(flag==0)){if(n%i==0)【10】i=i+1;}if(flag==0){j=j+1;printf(“%d”,n);}}}五、编程题(每小题10分,共20分)1、从键盘输入10个数,利用选择法对其进行排序并输出结果。(排序按从小到大的顺序)2、从键盘输入两个正整数,求其最大公约数并输出结果。(要求主函数实现数据输入、输出以及调用;另外再写一个函数求最大公约数,并用主函数调用)。答案2004~2005学年第2学期“高级语言程序设计(C语言)“试题答案及评分标准A一、选择题(每小题2分,共30分)12345678ABBBADBA9101112131415DBBACCB二、填空题(每空1分,共10分)1、字母下划线2、33、04、变量地址5、循环结构6、直接存取、间接存取7、下标8、文件三、写出下列程序运行结果(每题4分,共20分)1、112、8,43、54、1,2,3,4,5,6,7,8,5、1230四、完善程序(每空2分,共20分)1、str1[k]!='\0'2、'\0'3、k4、str1,str25、fac=1.06、fac*i7、s或(s)8、n=51;或48,49,509、(i=k10、flag=1;五、编程题(每一小题10分,共20分)1、从键盘输入10个整数,利用选择法对其进行排序(从小到大)并输出结果。(要求用数组实现)“高级语言程序设计(C语言)“试题答案及评分标准A程序1:#includestdio.hmain(){inti,j,k,p;staticints[10];for(i=0;i10;i++)scanf(%d,&s);2分for(i=0;i=n-2;i++){k=i;2分for(j=i+1;jn;j++)if(s[j]s[k])k=j;2分if(k!=i){p=s;s=s[k];s[k]=p;}3分}for(i=0;i10;i++)printf(%d,s);1分}2、从键盘输入两个正整数,求其最大公约数并输出结果。(要求主函数实现数据输入、输出以及调用;另外再写一个函数求最大公约数,并用主函数调用)程序2:intfac(m,n){intk;if(mn){k=m;m=n;n=k;}2分while(m!=0){k=n%m;n=m;m=k;}4分return(n);1分}#includestdio.hmain(){intm,n;do{printf(inputmandn:);scanf(%d%d,&m,&n);}while((m=0)||(n=0));1分printf(%d\n,fac(m,n));2分
本文标题:C语言程序设计期末考试试题1
链接地址:https://www.777doc.com/doc-2226315 .html