C语言作业题整理
- 格式:docx
- 大小:31.36 KB
- 文档页数:26
1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。
1单选题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
目录第一单元程序设计和C语言 (1)第二单元顺序程序设计 (3)第三单元分支程序设计 (7)第四单元循环程序设计 (14)第五单元数组..................................................................... 错误!未定义书签。
第六单元函数 (23)第七单元指针..................................................................... 错误!未定义书签。
第八单元结构体和共用体..................................................... 错误!未定义书签。
第九单元文件..................................................................... 错误!未定义书签。
附加题......................................................................................... 错误!未定义书签。
模拟试卷一................................................................................. 错误!未定义书签。
模拟试卷二................................................................................. 错误!未定义书签。
模拟试卷三................................................................................. 错误!未定义书签。
第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。
第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。
苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。
某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。
要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。
#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。
#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。
红色代表改的正确答案绿色黄色自己做的1、下列程序的输出结果是:main( ){}A、5B、1C、0D、不确定值2、设int a=12,则执行完语句a+=a-=a*a后,a的值是: A、552B、264C、144D、-264int a=7,b=5; printf("%d ",b=b/a);结果03、当调用函数时,实参是一个数组名,则向函数传送的是: A、数组的长度B、数组的首地址C、数组每以个元素的地址D、数组每个元素的值4、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b 的是:A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;5.能正确表示a 和b 同时为正或同时为负的逻辑表达式是: A、(a>=0||b>=0)&&(a<0||b<0) B、(a>=0&&b>=0)&&(a<0&&b<0) C、(a+b>0)&&(a+b<=0)D、a*b>06在一个C程序中: A、main函数必须出现在所有函数之前; B、main函数可以在任何地方出现; C、main函数必须出现在所有函数之后; D、main函数必须出现在固定位置7以下说法中正确的是: A、C语言程序中是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语程序中的main()函数必须放一在程序的开始部分8、C语言中,调用个函数时,实参变量和形参变量之间的数据传递是: A、单纯值传递B、单纯地址传递C、值传递和地址传递都有可能D、由实参传给形参,然后由形参传回给实参,即是双向传递9、以下程序的输出结果是: #include main(){int a=2,c=5;printf("a=%%d,b=%%d ",a,c); }%%代表输出%A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d10.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是: A、大写字母B.连接符C、数字字符D、下划线11.以下定义语句中正确的是: A、char a='A' b='B';B、floata=b=10.0;C、int a=10,*b=&a;B答案没有定义变量bD、float *a,b=&a;12、有以下程序: main(){int y=10; while(y--) ; printf(“y=%d ”,y);}程序执后的输出结果是: A、y=0B、y=-1C、y=1D、while构成无限循环先使用在减小1等于0停止打印时候已经减一13、程序char c[5]={…a‟,‟b‟,‟\0‟,‟c‟,‟\0‟}; printf(“%s”,c); 的运结果是:A、'a''b'B、abcC、ab cD、ab14、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是: A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);15、下列变量声明正确的是: A、int a = 0 , b = 5; B、float i = j = 3.0; C、char a ='A' b ='B' D、int a = 3 , b = &a;16.以下不正确的if语句形式是: A、if(x>y&&x!=y)t=x++;B、if(x==y) x+=y;C、if(x!=y) scanf("%d",&x) else scanf("%d",&y);D、if(x<0)x++;17、设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是: A、k++B、k+=1C、++kD、k+118、以下结构体类型的变量所占字节数是: struct student{ shortnum; char name[15]; float score; char sex;};A、22B、24C、26D、2819、C语言源程序的基本单位是: A、过程B、函数C、程序D、标识符20若有以下定义和语句: int u=010,v=0x10,w=10;printf("%d,%d,%d ",u,v,w); 则输出结果是:A、8,16,10B、10,10,10C、8,8,10D、8,10,1021、若要求定义具有10个int形元素的一维数组array,则以下的定义语句错误的是: A、#define N 10int a[N]; B、#define n 5int a[2 * n];C、int a[5 + 5];D、int n = 10,a[n] = {0};22、以下程序执行后sum的值是: main(){inti,sum; for(i=1;i<6;i++) sum+=i; printf("%d ",sum);}A、15B、14C、不确定D、0 sum没有赋初值23、设变量定义为int x , *p = &x;则&(*p)相当于: A、*(&x)B、*pC、pD、x24、设已有定义:float x; 则以下对指针变量p进行定义且赋初值的语句中正确的是: A、float *p=1024;B、int *p=(float)x;C、float p=&x;D、float *p=&x;25、以下程序的输出结果为:inti; void prt( ){for(i=5;i<8;i++) printf("%c",'*');printf(" "); } 这个只执行了一次因为内部加到8,在i+1结束main( ) {for(i=5;i<=8;i++) prt( ); }A、***B、*** *** *** ***C、*** ***D、* * *26、定义由n个指向整形数据的指针组成的数组p,其正确的式为:A、int p;B、int (*p)[n];C、int *p[n];D、int (*p)( );27、以下代码的输出结果为: int array[3] = {1,4};for(inti = 0;i < 3;i++){ printf(“%d ”,array[i]); }A、1 4 0B、0 1 4C、1 0 4D、1 4 428、设int x=1, y=1; 表达式(!x||y--)的值是: A、0 B.1C、2 D、-129.以下程序的输出结果是: main(){int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y);}A、10 1 9 2B、9 8 7 6C、10 9 9 0D、10 10 9 1自加是最后进行所以y先打印在进行加减30、若执行下面程序时:int x;scanf("%d",&x);if(x++ > 5){ printf( "%d ",x)}; else{ printf("%d ",++x)};从键盘上输5,则输出是:A、7B、6C、5D、431、下面程序的输出是: fun3(int x){staticint a=3; a+=x; return(a);} main() {int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d ",n);}A、3B、4C、6D、932、有定义语句:intb;char c[10];,则正确的输入语句是: A、scanf("%d%s",&b,&c);B、scanf("%d%s",&b,c);C、scanf("%d%s",b,c);D、scanf("%d%s",b,&c);33、函数调用:strcat(strcpy(str1,str2),str3)的功能是: A、将串str1复制到串str2中后再连接到串str3之后B、将串str1连接到串str2之后再复制到串str3之后C、将串str2复制到串str1中后再将串str3连接到串str1之后D、将串str2连接到串str1之后再将串str1复制到串str3中34、若程序中定义了以下函数double myadd(double a,doubleb){ return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:A、double myadd(double a,b);B、double myadd(double,double);C、double myadd(double b,double a);D、double myadd(doublex,double y);35、有以下程序main(){char s[]="abcde"; s+=2;printf("%d ",s[0]);}执行后的结果是: s+=2这是错误的不能更改数组首地址A、输出字符a的ASCII码B、输出字符c的ASCII码C、输出字符cD、程序出错36、现有一个函数的功能是求出一个元素在数组中的索引,以下该函数的声明正确的是: A、intgetIndex(int *a,intcount,int n);B、void getIndex(int a[],intcount,int n);C、intgetIndex(int a[],int count);D、void getIndex(int *a,int count);37、以下程序的输出结果为: main( ){char s1[40]="country",s2[20]="side";inti=0,j=0;while(s1[i]!='') i++;while(s2[j]!='')s1[i++]=s2[j++]; s1[i]=0;printf("%s ",s1); }A、sideB、countryC、sidetryD、countryside38、有以下程序main(){charch[]="uvwxyz",*pc; pc=ch;printf(" %c ",*(pc+5));}程序运行后的输出结果是: A、zB、0C、元素ch[5]的地址D、字符y的地址39、利用宏,求三个数中的最大值,以下宏定义正确的是: A、#define MAX(a,b,c) ((a)>(b)?(a):(b))>c?((a)>(b)?(a):(b)):(c) B、#define MAX(a,b,c) (a>b?a:b)>c?(a>b?a:b):c C、#defineMAX(a,b,c) (a)>(b)?(a):(b)>c?((a)>(b)?(a):(b)):(c) D、#define MAX(a,b,c) a>b?a:b>c?(a>b?a:b):c40、设有如下定义:structjan{inta;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引是: A、(*p).c2.aB、(*p).aC、p->c2.aD、p.c2.a※判断题(共10题,每题2分)1、条件运算符?和:是一对运算符,不能分开单独使用。
c语言100题1. 构成C语言程序的基本单位是()。
A.函数B.变量C.子程序D.语句是不正确的转义字符。
2. C语言规定:在一个源程序中,main()函数的位置()。
A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后3. 下列哪个选项能够正确地声明一个指向整型变量的指针?A) int *ptr;B) int ptr;C) int ptr;D) int ptr;4.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。
A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5. C语言中的简单数据类型有()。
A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型6. 以下选项中,不正确的整型常量是()。
A.-37B.32,758C.326D.67.以下选项中,不正确的实型常量是()。
A.123B.1e4C.3.640E-1D.0.358.以下选项中,合法的C语言赋值语句是()。
A.a=b=34B.a=34,b=34C.-i;D.m=(int)(x+y);9.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。
A.0~255B.0~65535C.-32768~32767D.-256~25510.在C语言中,下列哪个函数用于将整数转换为字符串?A) itoa()B) atoi()C) to_string()D) intstr()11.以下叙述中,不正确的是()。
A.在C程序中,%是只能用于整数运算的运算符B.在C程序中,无论是整数还是实数,都能准确无误地表示C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.前缀和后缀运算符,作为表达式来说有不同的作用12.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&(n=c>d)运算后,n的值为()。
第二章作业题答案1 进制转换(1)7A.3D (或者7A.3DH)(2)01001011.01010111,4B.57 (二进制最前面的“0”可以省去;十六进制也可4B.57H)2 码制转换(1)原码:01010; 真值:+0.1010(2)原码:10110; 真值:-0.01103 设某机器字长为8位:(1)-1(2)-2-7(还可以进一步计算为:-0.0078125)4.浮点数转换为二进制:(A27F)16= (1010001001111111)2阶码补码为:E补=101000,则阶码真值E = -11000 = -24;尾数补码:M补= 1.001111111,尾数真值M = - 0.110000001;则(A27F)16的十进制真值为:- (2-1+2-2+2-9) x 2-24 = -(2-25+2-26+2-33)上面的结果还可以进一步化简写成分数或小数,只写到这一步也可以。
5将十进制数-7.25转换为IEEE754短浮点格式:(1)转换为二进制:(-7.25)10=(-111.01)2(2)规格化:(-111.01)2 = (-1.1101)2 x22(3)计算阶码(移码表示):E移= 127+2 = (129)10 = (10000001) 2(4)短浮点格式:(11000000111010000000000000000000)2 = (C0E80000)166.(1) 1000H,1006H(2) 1002H,2374H(3) E529H7 设当前堆栈状态如图3所示,按字编址,下列各小题分别执行,写出结果:(1)(SP) = 1003H, (R0) = 32H(2)(SP) = 1001H,(R0)=1000H,存储单元1000H~1002H的值分别是30H、1000H、32H。
第六章作业题一、选择题1.某字符显示器,分辨率为25x80,则第2行第5列(序号均从0开始)字符的代码,应存放在基本显示缓存的第()单元中(从0号单元开始)。
大学C语言考试题库第1章 C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. AB. BC. DD. E(2) 在 C 语言中,每个语句必须以 D 结束。
A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。
A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 下列说法中正确的是( B )。
A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。
A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 32 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前 8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。