版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE第15页共15页《C语言程序设计》考试试卷(A卷)(考试时间:120分钟,本卷共3页,共印份)题号一二三四总分评卷人得分一、选择题(本题共有10道小题,每道小题2分,满分20分)1.下列叙述中不正确的是()A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面2.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()A)2.500000 B)2.750000C)3.500000D)3.若有代数式,则不正确的C语言表达式是()A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*34.若有定义:intm=5,y=2;则计算表达式y+=y-=m*=y后的y值为()A)-15B)-8C)10D)-165.执行以下程序段后,变量a,b,c的值分别是()intx=10,y=9;inta,b,c;a=(--x==y++)?--x:++y;b=x++;c=y;A)a=9,b=9,c=9 B)a=8,b=8,c=10 C)a=9,b=10,c=9 D)6.有以下程序main(){ int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); }}执行后输出结果是()A)011122 B)012 C)012020 D)1207.下面程序的运行结果是()intx=-1;do{ x=x*x;}while(!x);A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误8.若有以下程序段:……inta[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[i]){a[j+1]=a[j];j--;}a[j+1]=t;}……则该程序段的功能是()A)对数组a进行插入排序(升序)B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序)D)对数组a进行选择排序(降序)9.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为()。(假设a[0][0]位于数组的第一个位置上。)A)i*m+j B)j*m+iC)i*m+j-1 D) i*m+j+110.函数调用语句:fseek(fp,-20L,2);的含义是()A)将文件位置指针移动到距离文件头20个字节处B)将文件位置指针从当前位置向后移动20个字节C)将文件位置指针从文件末尾处向后退20个字节D)将文件位置指针移到离当前位置20个字节处二、读程序,给出程序结果(本题共有5道小题,每道小题4分,满分20分)#include<stdio.h>intsub(int*s){staticintt=0;t=*s+t;returnt;}main(){inti,k;for(i=0;i<5;i++){k=sub(&i);printf(“%3d”,k);}}程序结果为:2.main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;printf(“111”case3:a++;b++;}printf(“a=%d,b=%d”,a,b);}程序结果为:3.#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p,str[20]=”1234567”p=str;fun(p,strlen(p));puts(p);}程序结果为:4.main(){ inti,f[10];f[0]=f[1]=1;for(i=2;i<10;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<10;i++){if(i%4==0)printf(”\n”);printf(“%3d”,f[i]);}}程序结果为:5.main(){ char str[]="abc",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--) puts(ps);}程序结果为:程序填空(本题共有5道小题,每道小题4分,满分20分)下面程序的功能是用do-while语句求1到1000之间满足“用3除余2;用5除余3;用7除余2”#include<stdio.h>main(){inti=1,j=0;do{if(___________【1】______________){printf(“%4d”,i);j++;if(__________【2】____________)printf(“\n”);}i=i+1;}while(i<1000);}2.下面函数的作用是求整数num1和num2的最大公约数,并返回该值。请填空:fun(intnum1,intnum2){inttemp,a,b;if(num1__【1】____num2){temp=num1;num1=num2;num2=t;}a=num1;b=num2;while(____【2】_____){temp=a%b;a=b;b=temp;}return(a);}3.函数fun能够按以下形式构成一个杨辉三角形,请填空:111121133114641…………#defineN11fun(inta[][N]){inti,j;for(i=1;i<N;i++){a[i][1]=1;a[i][i]=1;}for(____【1】____;i<N;i++)for(j=2;____【2】______;j++)a[i][j]=______【3】___+a[i-1][j];}main(){inti,j,b[N][N];fun(b);for(i=1;i<N;i++){for(j=1;j<=i;j++)printf(”%3d”,b[i][j]);printf(”\n”);}}4.下面程序是判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串称“回文”,如level)。请填空:#include<stdio.h>#include<string.h>main(){chars[81],*p1,*p2;intn;gets(s);n=strlen(s);p1=s;p2=____【1】______;while(____【2】____){if(*p1!=*p2)break;else{p1++;_____【3】_______;}}if(p1<p2)printf(“NO\n”);elseprintf(“YES\n”);}5.下列函数的功能是:将一正整数序列{k1,k2,…,k9}重新排列成一个新的序列。新序列中,比k1小的数都在k1的前面(左面),比k1大的数都在k1的后面(右面)。请填空:#include<stdio.h>fun(inta[10][9]){inti,j,k,val,num;for(i=0;i<10;i++){val=____【1】_____;for(j=0;j<9;j++)if(______【2】________){num=a[i][j];for(_______【3】___________)a[i][k]=a[i][k-1];a[i][0]=num;}}}根据要求设计程序(满分40分)(10分)从键盘输入一个5行5列的矩阵,计算主对角线元素之和及次对角线元素之和,并输出。2.(10分)从键盘输入一个字符串,存入一字符数组中,要求将该字符数组中的字符串正序和反序进行连接,形成一个新的字符串,并存放到一个新的字符数组中,最后将新的字符串输出。例如,当s数组中的字符串为ABCD时,则新的数组t中存放的内容应该为ABCDDCBA。3.(10分)从键盘上输入两个两位的正整数a和b,要求将a和b合并形成一个整数放在c中,合并的方式为:将a数的十位和个位依次放在c数的十位和千位上,b数的十位和个位依次放在c数的百位和个位上。例如,当a=45,b=12时,c数中应该存放5142。4.(10分)从键盘上输入一个正整数(要求大于30小于100),将所有大于1小于该数的素数求和,并计算素数的个数,最后把和及个数输出。《C语言程序设计》考试试卷(B卷)(考试时间:120分钟,本卷共3页,共印份)题号一二三四总分评卷人得分一、选择题(本题共有10道小题,每道小题2分,满分20分)1.下述表达式中,可以正确表示x<=0或x>=1的关系()。A)(x≥1)||(x≤0)B)x>=1|x<=0C)x>=1.or.x<=0D)x>=1||x<=02.运算表达式!(5)||(6>10)的结果为()。A)1B)0C)12D)103.执行以下程序段,循环体将执行()次。while(i=5)printf(“**”);A)5B)6C)4D)无限4.当定义一个结构体变量时,系统分配给它的内存是()。A)各成员所需内存量的总和B)成员中占内存量最大者所需的容量C)结构中第一个成员所需内存量D)结构中最后一个成员所需内存量5.若x=4,y=-2,z=5,则表达式++x-y+z++的值为()。A)10B)11C)12D)136.关于指针概念说法不正确的是()。A)一个指针变量只能指向同一类型的变量B)一个变量的地址称为该变量的指针C)只有同一类型变量的地址才能放到指向该类型变量的指针变量中D)指针变量可以由整数赋,不能用浮点数赋7.下列语句中,不正确的是()。A)staticinta[2][3]={1,2,3,4,5,6};B)staticinta[2][3]={{1},{4,5}};C)staticinta[][3]={{1},{4}};D)staticinta[][]={{1,2,3},{4,5,6}};8.下列程序的正确运行结果是()。#include<stdio.h>voidmain(){inta=7,b=4;floatx,y=27.2,z=3.4;x=a/2+b*y/z+1/3;printf(“\n%f”,x);}A)35.833332B)35.000000C)11.242424D)35.3333329.有一二维数组a[3][4],其第2行第3列元素的正确表示方法是()。A)&a[2][3]B)a[2]+3C)*(a+2)+3D)*(a[2]+3)10.以下给定程序的输出结果为()。main(){intx=12;while(x--);printf(“%d”,x);}A)-1B)0C)11D)1二、读程序,给出程序结果(本题共有5道小题,每道小题4分,满分20分)1.#include<stdio.h>voidmain(){inta[3]={0,0};inti,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)a[j]=a[i]+1;printf(“\n%d”,a[1]);}程序结果为:若键盘输入的数据是“Theprogramming#↙”,则下述程序的输出结果是。#include<stdio.h>voidmain(){inti=0,j=0;charch;while((ch=getchar())!=’#’){switch(ch){case‘a’:case‘A’:case‘e’:case‘E’:case‘o’:case‘O’:default:i++;case‘i’:case‘I’:case’u’:case‘U’:j++;}}printf(“%d,%d”,i,j);}下述程序的输出结果是。#include<stdio.h>intsb(int*s,inty){staticinti=3;y=s[i--];returny;}voidmain(){ints[]={1,2,3,4};inti,x=0;for(i=0;i<4;i++){x=sb(s,x);printf(“%d”,x);}}#include<stdio.h>#defineS(a,b)a*bmain(){inti=1,j=2;{inti=4,j=5;printf(“s=%d\n”,S(i+j,j));}printf(“s=%d\n”,S(i+j,j));}程序执行结果为#include<stdio.h>voidmain(intargc,char*argv[]){while(--argc>0)printf(“%s”,argv[argc]);printf(“\n”);}若上述程序编译后形成可执行文件COMM.EXE,并按下述语法执行该命令:COMMTHISISANEXAMPLE↙则程序的输出结果为:三、程序填空(本题共有5道小题,每道小题4分,满分20分)试求出200至1000以内的所有“素数”。#include<math.h>main(){inti,k,m,flag,n=0;for(i=200;i<1000;i++){k=sqrt(i);flag=0;for(m=2;m<k;(1))if(i%m==0){flag=1;break;}if((2)){printf(“%4d\t”,i);n=n+1;}}printf(“\nprimenumber=%4d\n”,n);}2.给定一4x4的矩阵,求出其主对角元素之和,及次对角线元素之积:main(){inti,j,sum=0,product=1;staticinta[4][4]={{1,2,3,4},{9,8,7,6},{10,-10,-4,4},{2,4,-5,6}};for(i=0;i<4;i++)for(j=0;j<4;j++){if((1))sum+=a[i][j];if((2))product*=a[i][j];}printf(“thesumis%4d,theproductis%4d”,sum,product);}3.下述程序接收来自键盘的输入,直到按<Ctrl>+Z(值为-1)键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格。#include<stdio.h>#include<conio.h>voidmain(){charcx,front=’\0’;while((1)!=EOF){if(cx!=‘’)putchar(cx);if(cx=‘’)if((2))putchar(cx);front=cx;}}4.菲波纳契数列中的头两个数是1和1,从第三个数开始,每个数字等于前两个数的和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。#include<stdio.h>voidmain(){intf,f1=1,f2=1;inti;printf(“%6d,%6d”,f1,f2);for(i=3;i<=20;i++){f=(1);printf(“%6d,”,f);if((2))printf(“\n”);f1=f2;(3);}}5.下述函数通过函数avg计算数组中所有元素的平均值,请填空。#include<stdio.h>floatavg(float*a,intn){inti;floatavg=0.0;for(i=0;i<n;i++)avg+=(1);avg/=(2);returnavg;}voidmain(){floata[5]={1.0,3.0,4.0,5.0,7.0};floataverage=avg(a,5);printf(“average=%f”,average);}根据要求设计程序(满分40分)(10分)编写一个程序,将字符数组s2中的全部字符连接到字符数组s1中,连接后形成一新字符串,并把连接后的字符串输出出来,要求不用strcat函数。2.(10分)从键盘上随机输入100个整型数存入数组str[100]中,并对这100个数进行从小到大排序,结果仍存入原数组中,并把结果在屏幕上输出出来。3.(10分)编写程序,求一个4×4矩阵的转置矩阵,并输出该转置矩阵。4.(10分)从键盘上输入整数x,判断是否是同构数。所谓同构数是指这样的数,它出现在它的平方数的右边。例:5是同构数,因为5的平方25,5是25的右边数,25是同构数,因为25的平方是625,25是625的右边数。假设x的值小于100。《C语言程序设计》A卷答案一.选择题(本题共有10道小题,每道小题2分,满分20分)1.D 2.A 3.C 4.D 5.B 6.A 7.C 8.B 9.D 10.C二.读程序,给出程序结果(本题共有5道小题,每道小题4分,满分20分)1、0136102、111a=2,b=13、1 7 1 1 7 1 74、1 1 2 35 8 13 2134 555、cbcabc三.程序填空(本题共有5道小题,每题4分,满分20分)1、(1)i%3==2&&i%5==3&&i%7==2(2)i%5==02、(1)<(2)b!=03、(1)i=3(2)j<=i-1(3)a[i-1][j-1]4(1)s+n-1(2)p1<p2(3)p2—5、(1)a[i][0](2)a[i][j]<val(3)k=j;k>0;k--四.根据要求设计程序(满分40分)1、#include<stdio.h>voidmain(){inta[5][5],i,j,s1=0,s2=0;for(i=0;i<5;i++)for(j=0;j<5;j++)scanf(“%d”,%a[i][j]);for(i=0;i<5;i++)for(j=0;j<5;j++)if(i==j)s1+=a[i][j];elseif(i+j==4)s2+=a[i][j];printf(“s1=%d,s2=%d”,s1,s2);}2、#include<stdio.h>#include<string.h>voidfun(char*s,char*t){inti,d;d=strlen(s);for(i=0;i<d;i++)t[i]=s[i];for(i=0;i<d;i++)t[d+i]=s[d-1-i];t[2*d]=’\0’;}main(){chars[100],t[100];printf(“pleaseinputastring:”);scanf(“%s”,s);fun(s,t);printf(“theresultis:%s”,t):}3、#include<stdio.h>voidmain(){inta,b,c;scnaf(“%d%d”,&a,&b);c=(a%10)*1000+(b/10)*100+(a/10)*10+b%10;printf(“c=%d”,c);}4、#include<stdio.h>intfun(intd){inti;for(i=2;i<=sqrt(d);i++)if(d%i==0)break;if(i>sqrt(d))return(1);elsereturn(0);}voidmain(){intk,i,j=0,sum=0;printf(“pleaseinputanumber:“);scanf(“%d”,&k);for(i=1;i<k;i++)if(fun(i)==1){j++;sum+=i;}printf(”thenumberofprimeis%d,thesum=%d”,j,sum);}《C语言程序设计》B卷答案一.选择题(本题共有10道小题,每道小题2分,满分20分)1.D 2.B 3.D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏南京师范大学专业技术人员招聘10人备考题库【综合题】附答案详解
- 2026中共湖南省委党校(湖南行政学院)招聘高层次人才17人备考题库【基础题】附答案详解
- 2026浙江宁波华侨温德姆至尊豪廷大酒店招聘2人备考题库【真题汇编】附答案详解
- 2026浙江宁波东钱湖旅游度假区某国有企业招聘派遣制工作人员备考题库附完整答案详解(名师系列)
- 2026贵州黔西南州政协办公室公益性岗位招聘4人备考题库含答案详解【b卷】
- 2026上半年北京事业单位统考市统计局招聘1人备考题库附参考答案详解(典型题)
- 2026江苏苏州太仓农商行招聘2人备考题库含答案详解(模拟题)
- 四分数的意义和性质(课件)-2025-2026学年苏教版数学五年级下册
- 2026江苏南通市第一人民医院第一批招聘备案制工作人员102人备考题库及答案详解(考点梳理)
- 2026江苏无锡职业技术大学招聘3人备考题库含答案详解(典型题)
- 皮肤科常见疾病康复
- GB/T 4925-2008渔网合成纤维网片强力与断裂伸长率试验方法
- GB/T 39363-2020金银花空气源热泵干燥通用技术要求
- 复工复产安全检查表
- 第三章表面活性剂的功能与应用
- 心理学主要理论流派课件讲义
- 延1024井马五层酸化压裂设计
- 采矿学I第四章-矿石的损失和贫化课件
- 部编版六年级下册道德与法治全册优秀课件
- 中国经典广告案例评析之公益广告课件
- EPC合同条件(银皮书)-1999
评论
0/150
提交评论