版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计》综合练习试卷(一)试题一判断题(每题1分,共10分)(用T表示正确、F表示不正确)C的任何类型数据在计算机内部都是以二进制形式存储的。按格式符“%d”输出float类型变量时,截断小数位后取整输出。字符数组中字符串可以整体输入输出。传值调用的形参只有在被调用时,才被创建(分配存储单元)。C语言中数组名是指针常量。结构体类型中的各成员项数据类型可以不相同。函数必须有返回值,否则不能使用函数。C程序执行总是从第一个函数开始。可以用关系运算符对字符串进行大小比较。For循环只能用于循环次数已确定的场合。试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。1.以下程序运行后,输出结果是#include"stdio.h"voidmain(){chars[10]="abcde",*p;p=s+2;printf("%s\n",p);}A)cdeB)字符c的ASCII码值C)字符c的地址D)出错2.对下面函数f,写出f(f(3))的值。intf(intx){staticintk=0;x+=k--; returnx;}A)5B)3C)2D)43.以下程序运行后,输出结果是#definePT5#defineS(x)PT*x#include"stdio.h"voidmain(){inta=1,b=2;printf("%d\n",S(a+b));}A)15B)7C)8D)无正确答案4.若有floata[3][4];正确的引用第3行第1列的元素是A)**(a+2)B)*(*a+2)C)a[3][1]D)a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A)2.5,1.25B)2.5,1CA)inta[];B)intn=5,a[n];C)intn,a[n]={1,2,3,4,5};D)inta[10/2];7.若有定义:structperson{charname[9];intage;};personst[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A)printf("%c",st[2].name);B)printf("%c",st[3].name[1]);C)printf("%c",st[2].name[1]);D)printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A)charb[10]={'H','e','l','l','o','!','\0'};B)charb[10];b="Hello!";C)charb[10];strcpy(b,"Hello!");D)charb[10]="Hello!";9.若有inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6B)*(p+6)C)*p+=5D)p+510.已知:int*p,m=5,n;正确的程序段是A)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p);C)scanf("%d",&n);*p=n;D)p=&n;*p=m;11.下面程序的运行结果是:#include"stdio.h"voidmain(){intx[4]={2,4,6,8},*p,**pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A)44B)24C)22D)4612.下面程序执行后a的值是#include"stdio.h"voidmain(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4B)1C)0D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A)if(u>s)t=u;t=s;B)t=s;if(u>s)t=u;C)if(u>s)t=s;elset=u;D)t=u;if(u>s)t=s;14.若有inta=7,b=12;则语句printf("%d",a&b);输出结果A)19B)9C)5D)415.若有FILE*fp;以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A)fp=fopen("a:\aa.dat","w");B)fp=fopen("a:\aa.dat","r");C)fp=fopen("a:\\aa.dat","w");D)fp=fopen("a:\\aa.dat","r");试题三阅读程序题(每题4分,共24分)写出读下列程序的输出结果1.#include<stdio.h>voidmain(){charch; for(ch='a';ch<'f';ch++) {putchar(ch-32); putchar(ch); }}2.#include"stdio.h"voidmain(){inti;for(i=1;i<=4;i++){if((i%3)==0){printf("$");continue;}elseprintf("*");printf("#");}}3.#include"stdio.h" voidmain() { inti; for(i=1;i<5;i++) switch(i%5) { case5: printf("5"); case3:printf("3"); case1: printf("1"); default: printf("%2d",i); } }4.#include"stdio.h"voidmain(){intx[10];intt,i,j,m=1;for(i=0;i<10;i++){m=-m;x[i]=m*i;}for(i=1;i<10;i++){t=x[i];for(j=i-1;j>=0;j--) if(t>x[j])break;elsex[j+1]=x[j]; x[j+1]=t;} for(i=0;i<10;i++)printf("%3d",x[i]);}5.#include<stdio.h>voidmain(){voidswap1(intx,inty);voidswap2(int*x,int*y); voidswap3(int&x,int&y);inta1,b1,a2,b2,a3,b3; a1=a2=a3=10; b1=b2=b3=5; swap1(a1,b1); swap2(&a2,&b2); swap3(a3,b3);printf("a1=%db1=%d\n",a1,b1); printf("a2=%db2=%d\n",a2,b2); printf("a3=%db3=%d\n",a3,b3); }voidswap1(intx,inty){intt; t=x;x=y;y=t;}voidswap2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidswap3(int&x,int&y){intt;t=x;x=y;y=t;}6.structnode{intnum;node*next;};intfun(node*h){ints,n=0,i;node*p=h;while(p!=NULL) { for(s=0,i=1;i<p->num;i++) if((p->num)%i==0)s+=i;if(s==p->num)n++; p=p->next;}returnn;}head写出执行语句“printf(“%d\n”,fun(head));”的输出结果。head是头指针,以head为头指针的链表各结点的当前值如下所示:head285647NULL285647NULL试题四程序填空题(每空2分,共24分)1.下列程序读入时间数值,将其加一秒后输出,时间格式为hh:mm:ss,即时:分:秒,当小时数等于24时,置为0.#include<stdio.h>structstime{inthour,minute,second;};voidmain(void){stimetime;scanf(“%d:%d:%d”,1);time.second++;if(==60){2;time.second=0;if(time.minute==60){time.hour++;time.minute=0;if(3)time.hour=0;}}printf(“%d:%d:%d”,time.hour,time.minute,time.second);}2.以下程序建立一个如下所示的二维数组,并按以下格式输出。10001
02020
00300
04040
50005#include"stdio.h"
voidmain()
{ inta[5][5]={0};
int*p[5],i,j;
for(i=0;i<5;i++)
p[i]=1; for(i=0;i<5;i++)
{ *(p[i]+i)=i+1;
*(p[i]+2)=i+1;
}
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%2d",p[i][j]);
3;
} }3.以下程序的功能是:从键盘上输入一行字符串(不超过80个字符),把该字符串中的所有小写字母改写后依次输出到c:\bb.txt文件中(其它字符不输出)。小写字母改写规则如下:'a'改'b','b'改'c',……'x'改'y','y'改'z','z'改'a'。#include<stdio.h>#include<stdlib.h>voidmain(){FILE*fp;charstr[81];inti=0;if((fp=fopen(1))==NULL){printf("can'topenthefile.\n");exit(0);}gets(str);while(str[i]!='\0'){if(2) { if(str[i]=='z')str[i]='a'; elsestr[i]=str[i]+1; 3}i++;}fclose(fp);}4.以下程序的功能是:输出{2m,3n|m>=1,n>=1}中由小到大排列的前32项数,并且每行8个数。(如 #include"stdio.h" voidmain() { longm2,n3; intk; m2=2;n3=3;k=0; while(k<32) { if(1) { printf("%ld",m2); m2*=2; } else {printf("%ld",n3); 2; } k++;if(3)printf("\n"); } }试题五编程序(共27分)(一).输入100个同学一门课的考试成绩,求该门课程的平均成绩,并在屏幕上输出。(二).输入一个3X4的矩阵,输出最小元素值,以及它的行号和列号。(如有多个最小值,求其中的一个)(三).编写函数,将字符串中的指定字符删除,并返回该字符串的地址。(如:字符串“cbaccbg",指定的删除字符'c',则删除后的字符串"babg")。《C语言程序设计》综合练习试卷(四)一、判断题(正确的括弧内画T,否则写F,1×10’)1,在C程序中,语句之间必须要用分号“;”分隔。()2,在C程序中所用的变量必须先定义后使用。()3,若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b中的值将丢失。()4.在C程序中,APH和aph是两个不同的变量。()5,break语句只能用在循环语句中。()6,C源程序的基本单位是函数。()7,定义:inta[3][5],i,j;(且0<=i<3,0<=j<5),则元素a[i][j]的地址可用*(a+i)+j表示.()8,c语言中实参和与其对应的形参共占用一个存储单元。()9,srcat(strcpy(s1,s2),s3)的功能是将串s2复制到串s1中后再连接到串s3之后。()10,C语言中数组名是一个不可改变的地址常量,不能对它进行赋值运算。二、选择题:(2×15’)1,不合法的八进制数是________A)0B)028C)077D)012,C语言中最简单的数据类型包括__________。A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型3,为表示关系x≤y≤z,正确的C语言表达式是__________。A)(y>=x)&&(y<=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)4,若定义x和y为double类型,则表达式:x=2,y=x+5/2的值是__________A)4B)4.5C5,设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后m,n的值为()A)01B)22C)13D)246,若二维数组a有m列,则在a[i][j]前的元素个数为()A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+17,下面程序段的运行结果是()chara[7]=”abcdef”;charb[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A)B)\0C)e8,下面程序的功能是将字符串s中所有的字符c删除。请选择填空。#include<stdio.h>main(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!=’\0’;i++)if(s[i]!=’c’)_________________;s[j]=’\0’;put(s);}A)s[j++]=s[i]B)s[++j]=s[i]C)s[i]=s[j];D)s[j]=s[i]9,下面判断正确的是()A)char*a="china”;等价于char*a;*a=”china”;B)charstr[10]={“china”};等价于charstr[10];str[]=“china”;C)char*s=”china”;等价于char*s;s=”china”;D)charc[4]=”abc”,d[4]=”abc”;等价于charc[4]=”abc”;d=c;10,下面程序段的运行结果是()char*p=”abcdefgh”;p+=3;printf(“%d\n”,strlen(strcpy(p,”ABCD”)));A)8B)12C)4D)711,为了判断两个字符串s1和s2是否相等,应当使用()A)if(s1==s2)B)if(s1=s2)C)if(strcpy(s1,s2))D)if(strcmp(s1,s2)==0)12,根据下面的定义,能打印出字母M的语句是()strctperson{charname[9];intage;};structpersonclass[10]={“John”,17,“Paul”,19,“Mary”,18,“adam”,16};A)printf(“%c\n”,class[3].name);B)printf(“%c\n”,class[3].name[1]);printf(“%c\n”,class[2].name[1]);printf(“%c\n”,class[2].name[0]);13,语句int(*ptr)();的含义是()A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针14,在c语言中下面描述正确的是()A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均可以嵌套D)函数的定义和函数的调用均不可以嵌套15,若k为整型,以下while循环__________次。intk=10;while(k=0)k=k-1;A)10次B)无限循环C)一次不执行D)执行一次三、程序结果填空:(5×5’)下面程序的运行结果是:#include<stdio.h>main(){char*p,s[]=”ABCDEFG”;for(p=s;*p!=’\0’;){printf(“%s\n”,p);p++;if(*p!=’\0’)p++;elsebreak;}}答案:___________________________下面程序段的运行结果是:chara[]=”12345”,*p;ints=0;for(p=a;*p!=’\0’;p++){s=10*s+*p-‘0’;printf(“%d\n”,s);}答案:_____________________________下面程序的运行结果是:main(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf(“%2d”,a[i][j]);printf(“\n”);}}答案:_______________________________下面程序的运行结果是:main(){inta=1,b=2,c=3;++a;c+=++b;{intb=4,c;c=b*3;a+=c;printf(“first:%d,%d,%d\n”,a,b,c);}printf(“second:%d,%d\n”,a,b);}答案:_________________________________下面程序的运行结果是:main(){inta[6]={1,4,123,12,-45,0};inti,j,t;for(j=0;j<5;j++){for(i=0;i<5-j;i++)if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("\n");for(i=0;i<6;i++) printf("%d",a[i]);}}答案:_______________________________四、填空:(5×4’)1,下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中,请把程序填写完整。#include<stdio.h>main(){chara[]=“acegikm”;charb[]=”bdfhjlnpq”;charc[80],*p;inti=0,j=0,k=0;while(a[i]!=”\0”&&b[j]!=’\0’){if(a[i]<b[j]){(1)}else{(2)}k++;}c[k]=’\0’;if((3))p=b+j;else(4);strcat(c,p);put(c);}(1):__________________(2):__________________(3):___________________(4):__________________2,函数是在二维数组中产生如下形式的扬辉三角形11211331#defineN11voidyahui(inta[][N]){intI,j;for(I=1;I<N;I++){a[I][1]=1;(1)=1;}for((2);I<N;I++)for(j=2;(3);j++)a[I][j]=(4)+a[I-1][j];}(1):________________________(2):________________________(3):_______________________(4):_______________________3.某人有5张2分的邮票和5张3分的邮票,问使用这些邮票可以组合出多少种不同面值的邮资(1张2分邮票和一张3分邮票组成5分的邮资;3张2分的邮票或2张3分邮票可以组成同样的6分的邮资。)#include<stdio.h>inta[100];main(){intI,j,k,s,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人房屋抵押民间借贷借款协议文本3篇
- 2025年度平板车租赁运输合同风险评估与控制
- 个人租房合同标准版可打印
- 二零二五年度处理男子外遇妻子怀孕离婚抚养权纠纷调解合同
- 二零二五年度智慧家居项目报建代理与智能家居合同2篇
- 2025年度铁矿石进出口关税及税费缴纳合同规范
- 二零二五版矿产资源租赁居间代理合同3篇
- 二零二五年度企事业单位廉洁从业监督员聘任合同
- 2025阿里巴巴智能物流机器人研发及销售合同3篇
- 重庆文化艺术职业学院《应用文写作》2023-2024学年第一学期期末试卷
- 《大学生职业发展与就业指导》课程标准
- 第23课《出师表》课件(共56张)
- GB/T 3953-2024电工圆铜线
- 发电机停电故障应急预案
- 接电的施工方案
- 常用药物作用及副作用课件
- 幼儿阿拉伯数字描红(0-100)打印版
- 社会组织等级评估报告模板
- GB/T 12173-2008矿用一般型电气设备
- 新媒体研究方法教学ppt课件(完整版)
- 2020新版个人征信报告模板
评论
0/150
提交评论