您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 大学C语言考试题及答案
试卷类别AB使用班级063051~2使用学期2006上任课教师教研室主任审核签字考试课程名称:C语言学时:60考试方式:开卷,闭卷,笔试,口试,其它考试内容:一、选择题:(每题3分,共30分)1.若有说明:inti;则循环for(i=2;i==0;)printf(“%d”,i--);执行的次数是______。A)无限次B)0次C)1次D)2次2.判断char类型变量ch是否是大写字母的正确表达式是______。A)‘A’=ch=’Z’B)(‘A’=ch)||(ch=’Z’)C)(‘A’=ch)&&(ch=’Z’)D)(‘A’=ch)AND(ch=’Z’)3.运行下面程序,打印的结果是_______。main(){inty=10;do{y--;}while(--y);printf(%d\n,y--);}A)-1B)1C)8D)04.下面程序的运行结果是______。voidsub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(%d,%d,%d\n,a,b,c);}A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-75.下面程序段的运行结果是______。chara[7]=abcdef;charb[4]=ABC;strcpy(a,b);printf(%c,a[5]);A)一个空格B)\0C)eD)f6.若用数组名作为函数调用的实参,传递给形参的是______。A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数7.以下正确的程序段是______。A)charstr[20];scanf(%s,&str);B)char*p;scanf(%s,p);C)charstr[20];scanf(%s,&str[2]);D)charstr[20],*p=str;scanf(%s,p[2]);8.若有说明语句chara[]=Itismine;char*p=Itismine;则以下不正确的叙述是______。A)a+1表示的是字符t的地址B)p可以指向另外任何长度的字符串C)p的值和&a[0]的值不相同D)分配给a数组的空间是10个字节9.若有:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是______。A)*p+6B)*(p+6)C)*(p+5)D)p+510.假定有:int*p1,*p2,m=5,n=3;以下均是正确赋值语句的选项是______。A)p1=&m;p2=&p1;B)p1=&m;p2=&n;*p1=*p2;C)p1=&m;*p2=5;D)p1=&m;*p2=*p1;二、填空(每题4分,共20分)1.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,完数6=1+2+3。以下是判别m是否为完数的函数,是完数时返回1,否则返回0。intwn(intm){inti,s=1;for(i=2;i=m/2;i++)if(①)s+=i;if(②)return1;elsereturn0;}2.下面函数是找出数组a中最小的元素,并将它插入到最前面。例如,原数组a的5个元素值为2,3,4,1,5,则执行后a的值为1,2,3,4,5。voidreplace(int*a,intn){inti,i1,k;i1=0;k=a[0];for(i=0;in;i++)if(①){i1=i;k=②;}for(③)a[i]=a[i-1];④=k;}3.判断输入的年份是否闰年(闰年的条件是:年份能被400整除或年份能被4整除但不能被100整除)。voidmain(){inty,f;scanf(“%d”,&y);if(y%400==0)f=1;elseif(①)f=1;else②;if(f)printf(“%dis”,y);elseprintf(“%disnot”,y);printf(“aleapyear.\n”);}4.下面程序以每行4个数据的形式输出a数组,请填空。#defineN20voidmain(){inta[N],i;for(i=0;iN;i++)scanf(%d,①);printf(\n);for(i=0;iN;i++){printf(%8d,②);if(③)④;}}5.给出一个整数i,求出另一个整数j,使i和j在用8位二进制表示时互为逆序。例如给定i=3(000000112),应求得j=192(110000002)。voidmain(){inti,j=0,k;scanf(“①”,&i);for(k=0;k8;k++){②;}/*②可从A、B、C、D中选择一个*/printf(“\n%d”,j);}A:j=j+i%2;i/=2B:j=j+i%2C:j=j*2+i%2;i/=2D:j=j*2+i%2三、编程题(50分)1、所有的三位数中,有几个数既能被6整除又能被8整除,并打印出来,编程实现。(12分)2、将一个数组中的值按逆序重新存放。例如,原来为5,4,3,2,1,要求改为1,2,3,4,5。(12分)3、计算1/1!+1/2!+1/3!+……+1/n!的值。(14分)4、用迭代法求x=a1/2,即计算a的平方根。求平方根的公式为xn+1=(xn+a/xn)/2,要求前后两次求出的x的差的绝对值小于10-5。(14分)考试出题专用纸教务处制一、选择题BCDBDACDCB二、填空题1、①m%i==0②s==m2、①ka[i]②k=a[i]③i=i1;i0;i--④a[0]=k3、①y%4==0&&(y%100)②f=04、①&a[i]②a[i]③i%4==3或(i+1)%4==0④printf(“\n”);5、①%d②C或j=j*2+i%2;i/=2;三、编程题1、所有的三位数中,有几个数既能被6整除又能被8整除,并将它们存入数组中,编程实现。#includestdio.hvoidmain(void){inti,a[900],n=0;clrscr();for(i=100;i1000;i++)if(i%6==0&&i%8==0){a[n]=i;n++;printf(%8d,i);}printf(\nn=%d\n,n);getch();}2、将一个数组中的值按逆序重新存放。voidnx(inta[],intn){inti,k;for(i=0;in/2;i++){k=a[i];a[i]=a[n-i-1];a[n-i-1]=k;}3、计算1/1!+1/2!+1/3!+……+1/n!的值。#includestdio.hvoidmain(void){inti,n;floatx=1.0,sum=0.0;clrscr();printf(Pleaseinputaintegernumber:);scanf(%d,&n);for(i=1;i=n;i++){x*=i;sum+=1.0/x;printf(%f%f\n,x,sum);}getch();}4、用迭代法求x=a1/2,即计算a的平方根。求平方根的公式为xn+1=(xn+a/xn)/2,要求前后两次求出的x的差的绝对值小于10-5。#includestdio.h#includemath.hvoidmain(void){floatx1,x2,a;printf(“inputavalue:0\n”);scanf(“%f”,&a);x2=a;do{x1=x2;x2=(x1+a/x1)/2.0;}while(fabs(x2-x1)1.0e-5);getch();}
本文标题:大学C语言考试题及答案
链接地址:https://www.777doc.com/doc-4310747 .html