还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第1章C语言概述
一、选择题
1、C语言程序由什么组成()A、子程序B、主程序和子程序C、函数D、过程
2、源程序要正确地运行,必须要有什么函数()A、Printf函数B、自定义的函数C、__in函数D、不需要函数
3、指出下面哪些是合法的标识符()A、3abB、intC、ABCD、a_3E、sum..aF、#abcG、_stu2H、abcf
二、问答题
1、C语言程序由哪几部分组成?C语言程序结构有什么特点?参考答案
一、选择题
1、C
2、C
3、CDG
二、问答题见教案第2章基本数据类型、运算符及表达式
一、选择题
1、C语言中的数据的基本类型包括()A、整型、实型、字符型和逻辑型B、整型、实型、字符型和结构体C、整型、实型、字符型和枚举型D、整型、实型、字符型和指针型
2、在C语言中,不合法的int型常量是()A、32767B、0678C、0XABCD、32768L
3、在C语言中,运算对象必须是整型数的运算符是()A、%B、\C、%和\D、**
4、若已定义X和Y为double型,则表达式x=1y=x+3/2的值是()A、1B、2C、
2.0D、
2.
55、若t为double类型,表达式t=1t+5t++的值就是()A、1B、
6.0C、
2.0D、
1.
06、若有定义inta=10,b=9,c=8;执行下面两条语句c=a-=b-5;c=a%11+b=3;后,变量b的值为()A、9B、4C、3D、
27、设inta=12,则执行完语句a+=a-=a*a后,a的值是_____A、22B、264C、144D、-264
二、问答题
1、简述‘a’和“a”的区别参考答案
一、选择题
1、C
2、D
3、A
4、D
5、D
6、C
7、D
二、问答题‘a’是字符常量“a”是字符串常量C语言规定在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束C语言规定以字符’\0’作为字符串结束标志如果有一个字符串”china”,实际上在内存中是占内存不是5个字节,而是6个字节,最后一个是’\0’第三章顺序结构程序设计
一、选择题
1、putchar函数可以向终端输出一个________A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值
2、.已有如下定义和输入语句,若要求a1a2c1c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是__________inta1a2;charc1c2;scanf“%d%c%d%c”a1c1a2c2;A)10A20B↙B)10A20B↙C)10A20B↙C)10A20B↙
3、执行下列程序片段时输出结果是______ intx=13y=5; printf“%d”x%=y/=2;A)3B)2C)1D)
04、若定义x为double型变量,则能正确输入x值的语句是________A)scanf“%f”x;B)scanf“%f”x;C)scanf“%lf”x;D)scanf“%
5.1f”x;
5、.已知ijk为int型变量,若从键盘输入123回车,使I的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是____A)scanf“%2d%2d%2d”ijk;B)scanf“%d_%d_%d”ijk;C)scanf“%d%d%d”ijk;D)scanf“i=%dj=%dk=%d”ijk;
6、有输入语句scanf“a=%db=%dc=%d”abc;为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是______A)132↙B)132↙C)a=1b=3c=2↙D)a=1b=3c=2↙
二、看程序写结果
1、用下面的scanf函数输入数据,使a=3b=7x=
8.5y=
71.82c1=’A’c2=’a’问在键盘上如何输入?︼表示空格__in {intab; floatxy; charc1c2; scanf“a=%d︼b=%d”ab; scanf“%f︼%e”xy; scanf“︼%c︼%c”c1c2; }
2、#includestdio.h__in{intx=345;Printf“%6d\n%06d\n%-6d\n%2d”xxxx;}
三、填空题
1、输入两个实数ab然后交换它们的值,最后输出(提示要交换两个数得借助一个中间变量temp.首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)__in{floatabtemp;Printf“请输入a和b的值”;Scanf“%d%d”________
①________;Temp=a;______
②__________________________
③______________________Printf“交换后,a=%db=%d\n”______
④___________;}
四、编程题
1、编程序用getchar函数读入两个字符给c1c2,然后分别用putchar和printf函数输出这两个字符并思考以下问题1变量c1c2应定义为字符型或整型?或两者皆可?
(2)要求输出C1和C2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整型变量与字符型变量是否在任何情况下都可以互相替代?如charc1c2与intc1c2是否无条件地等价?
2、设圆半径r=
1.5,圆柱高h=3,求圆周长,圆__,圆球表__,圆球体积,圆柱体积用scanf输入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序参考答案
一、选择题
1、D
2、C
3、C
4、B
5、C
6、D
二、看程序写结果
1、a=3︼b=
78.5︼
71.82A︼a
2、︼︼︼345(右对齐,前补空格)000345(右对齐,前补0)345︼︼︼(左对齐,后补空格)345按原样输出
三、填空题
①ab
②a=b;
③b=temp;
④ab
四、编程题
1、#includestdio.h__in{charC1C2;C1=getchar;C2=getchar;PutcharC1;PutcharC2;Printf“\n”;Printf“%c%c\n”C1C2;}运行结果请输入两个字符C1C2:AB用putchar语句输出结果为AB用printf语句输出结果为AB回答思考问题C1和C2可以定义为字符型或整型,二者皆可在printf函数中用%d格式符输出即printf“%d%d\n”C1C2;字符变量在计算机内占一个字节,而整型变量占两个字节,因此整型变量在可输出字符的范围内(ASCII码为0-255之间的字符)是可以与字符数据互相转换的如果整数在此范围外,则不能代替
2、__in{floatpihrlssqvqvz;Pi=
3.141526;Scanf“%f%f”rh;I=2*pi*r;S=r*r*pi;Sq=4*pi*r*r;Vq=
3.0/
4.0*pi*r*r*r;Vz=pi*r*r*h;Printf“i=%
6.2f\n”i;Printf“i=%
6.2f\n”s;Printf“i=%
6.2f\n”sq;Printf“i=%
6.2f\n”vq;Printf“i=%
6.2f\n”vz;第四章选择结构程序设计
1、逻辑运算符两侧运算对象的数据类型______A、能是0或1B、能是0或非0正数C、能是整型或字符型数据D、以是任何类型的数据
2、设a为整形变量,不能正确表达数学关系10a15的C语言表达式是_______A、10a15B、a==11||a==12||a==13||a==14C、a10a15D、!a10!a=
153、在C语言中,逻辑值“真”用_______表示A、trueB、大于0的数C、非0整数D、非0的数
4、以下程序的输出结果是_______in{intx=10y=10;printf%d%d\nx----y;}A、1010B、99C、910D、
1095、当abc的值分别为3,4,5时,以下各语句执行后abc的值为多少_______Ifac{a=b;b=c;c=a;}Else{a=c;c=b;b=a;}Printf“%d%d%d”abc;A、5,4,5B、5,5,4C、3,4,5D、5,3,
46、当abc的值分别为3,4,5时,以下各语句执行后abc的值为多少_______Ifaca=c;elsea=b;c=b;b=a;printf“%d%d%d”abc;A、5,5,4B、5,4,5C、3,4,5D、5,3,
47、若K1,K2,K3,K4均为int型变量,为了将整数10赋给K1和K3,将整数20赋给K2和K4,则对应以下scanf函数调用语句的正确输入方式是________CR代表换行符__代表空格.Scanf“%d%d”k1k2;Scanf“%d%d”k3k4;A、1020CRB、10__20CRC、1020CRD、10__20CR1020CR10__20CR1020CR1020CR
8、在C语言中,当While语句中的条件为_______时,结束该循环A、0B、1C、trueD、非
09、C语言对嵌套if语句的规定是else总是与______ A、其之前最近的if配对B、第一个if配对 C、缩进位置相同的if配对D、其之前最近的且尚未配对的if配对
二、填空题
1、设a=3b=4c=5写出下面各逻辑表达式的值表达式表达式运算后的值a+bcb==c!ab!c||1!a+b+c–1b+c/
22、将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式______________________
3、执行以下程序段后,a=_______b=________c=________intx=10y=9;intabc;a=x--==y++x--:y++;b=x++;c=y;
三、看程序写结果
1、当a=1b=3c=5d=4时,执行完下面一段程序后x的值是ifabifcdx=1;else ifac ifbdx=2; elsex=3; elsex=6;elsex=7;printf“x=%d”x;
2、若inti=0;执行下列程序后,变量i的正确结果是switchi{ case9:i+=1; case10:i+=1; case11:i+=1; default:i+=1;}Printf“i=%d”i;
四、编程题
1、有三个整数abc,由键盘输入,求三个数中的最大值
2、写一程序,从键盘上输入一年份year(4位十进制数),判断其是否闰年闰年的条件是能被4整除、但不能被100整除,或者能被400整除
3、给出一百分制成绩,要求输出成绩等级’A’’B’’C’’D’’E’90分以上为’A’,80-__分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’参考答案
一、选择题
1、A
2、C
3、D
4、D
5、B
6、A
7、D
8、A
9、D
二、填空题
1、
0112、((y%4==0)y%100!=0)||y%400==
03、a=10b=9c=11
三、看程序写结果
1、x=2画流程图可以看出结果
2、i=1
四、编程题
1、__in{intabc;Scanf“%d%d%d”abc;IfabIfbcPrintf“__x=%d\n”c;ElsePrintf“__x=%d\n”b;ElseifacPrintf“__x=%d\n”c;ElsePrintf“__x=%d\n”a;}
2、__in{intyearleap;Scanf“%d”year;{Ifyear%4==0year%100!=0||year%400==0leap=1;Elseleap=0;}IfleapPrintf“%disaleapyear”year;Else“%disnotaleapyear”year;}
3、__in{floatscore;Chargrade;Scanf“%f”score;Whilescore100||score0{printf“\n输入有误,请重输”;Scanf“%f”score;}Switchintscore/10{case10:Case9:grade=’A’;break;Case8:grade=’B’;breakCase7:grade=’C’;breakCase6:grade=’D’;breakCase5:Case4:Case3:Case2:Case1:Case0:grade=’E’;}Printf“成绩是%
5.1f相应的等级是%c\n”scoregrade;}第5章循环结构程序设计
一、选择题
1、在C语言中,当while中语句中的条件为____时,结束该循环A、0B、1C、TrueD、非
02、在C语言中,当do-while语句中的条件为______时,结束该循环A、0B、1C、TrueD、非
03、若K为整型,以下while循环体中的语句执行____次K=2;Whilek=0{printf“%d”k;k--;printf“\n”;}A、无限次B、0次C、1次D、2次
4、设i和x都是int类型,则以下for循环____Fori=0x=0;i=9x!=876;i++scanf“%d”x;A、最多执行10次B、最多执行9次C、是无限循环D、循环体一次也不执行
5、逻辑运算符两侧运算对象的数据类型_______A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据
二、填空题
1、C语言三个循环语句分别是语句,语句和语句
2、至少执行一次循环体的循环语句是
3、循环功能最强的循环语句是
三、看程序写结果
1、__in{intk=1n=263; do{k*=n%10;n/=10;}whilen; printf“%d\n”k;}
2、__in{intijps;s=0;fori=1;i=4;i++{p=1;forj=1;j=i;j++p=p*j;s=s+p;}Printf“s=%d\n”s;}
3、__in{inti=1s=3;Do{s+=i++;Ifs%7==0continue;Else++i;}whiles15;Printf“i=%d\n”i;}
4、__in{ints=0k;Fork=7;k=4;k--{switch(k){case1:Case4:Case7:S++;Break;Case2:Case3:Case6:Break;Case0:Case5:S+=2;Break;}}Printf“s=%d”s;}
四、编程题
1、用while语句计算s=
2、求s=1+2+3+4+…….直到s的值不小于28888,求此n的值为多少?
3、判断m是否为素数
4、求Fibonacci数列前40个数这个数列有如下特点第
1、2两个数为1,
1.从第3个数开始,该数是其前面两个数之和
5、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身例如,153是一个水仙花数,因为153=++参考答案
一、选择题
1、A
2、A
3、B
4、A
5、A
二、填空题
1、whiledo-whilefor
2、do-while
3、for
三、看程序写结果
1、
362、s=
333、i=
84、s=4
四、编程题
1、#includestdio.h__in{intis;s=0;i=1;whilei=100{s=s+i;i++;}Printf“s=%d\n”s;}
2、#includestdio.h__in{intis=0;Fori=1;;i++[s=s+i;Ifs=28888break;}Printf“\ni=%d”i;}
3、#includestdio.h__in{intmn;Scanf“%d”m;Forn=2;n=m-1;n++ifm%n==0break;ifnm-1printf“\n%disaprimenumber!\n”m;elseprintf“\n%disnotaprimenumber!\n”m;}
4、__in{longintf1f2;Inti;f1=1;f2=1;fori=1;i=20;i++{printf“%12ld%12ld”f1f2;Ifi%2==0printf“\n”;f1=f1+f2;f2=f2+f1;}}
5、#includestdio.h__in{intnijk;Forn=100;n1000;n++{i=n/100;j=n/10-i*10;k=n%10;ifn==i*i*i+j*j*j+k*k*kprintf“%d\n”n;}}第6章数组
一、选择题
1、在C语言中,引用数组元素时,其数组下标的数据类型允许是A、整型常量B、整型表达式C、整形常量或整形表达式D、任何类型的表达式
2、以下对一维整型数组a的正确说明是____A、inta10;B、intn=10a[n];C、intn;scanf“%d”n; inta[n];D、#defineSIZE10inta[SIZE];
3、若有定义inta
[10],则对数组a元素的正确引用是A、a
[10]B、a[
3.5]C、a5D、a[10-10]
4、以下能对一维数组a进行正确初始化的语句是A、inta
[10]={00000};B、inta
[10]={};C、inta[]={0};D、inta
[10]={10*1};
5、若有定义inta
[3]
[4]则对数组a元素的正确引用是________A、a
[2]
[4]B、a
[13]C、a5D、a[10-10]
6、以下能对二维数组a进行正确初始化的语句是_______A、inta
[2][]={{101}{523}};B、inta[]
[3]={{123}{456}};C、inta
[2]
[4]={{123}{45}{6}};D、inta[]
[3]={{101}{}{11}};
7、若有说明:inta
[3]
[4]={0};则下面正确的叙述是_______A、只有元素a
[0]
[0]可得到初值0B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值
08、下面是对s的初始化,其中不正确的是_____A、chars
[5]={“abc”};B、chars
[5]={‘a’’b’’c’’d’’e’’\0’};C、chars
[5]=””;D、chars
[5]=”abcdef”;
二、程序填空
1、以下程序把一个由小到大的有序数列放在a
[1]到a[n]中,a
[0]用作工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍然的序请填空,完善程序#includestdio.h{inta
[10]={01217202528}xin=5;Printf“enteranumber”;Scanf“%d”x;a
[0]=x;i=n;whilea[i]x{a[____1____]=a[i];______
(2)___________;}a[___3____]=x;n++;fori=1;i=__4_______;i++printf“%4d”a[i];printf“\n”;}
三、编程题
1、用选择法对10个整数排序从小到大
2、有一篇文章,共有3行文字,每行有80个字符要求分别统计出其中英文大写字母,小写字母,中文字母,中文字符,数字,空格及其他字符的个数(提示中文字符是两个字节,且数值均大于128的字符)
3、将一个数组中的值按逆序重新存放例如原来顺序为8,6,5,4,1要求改为1,4,5,6,8参考答案
1、选择题
1、A
2、D
3、A
4、A
5、A
6、B
7、D
8、A
二、程序填空1i+12i=i-13++i4n
2、编程题
1、__in{intijmintempa
[11];Printf“enterdata:\n”;Fori=1;i=10;i++{printf“a[%d=”i;Scanf“%d”a[i];}Printf“\n”;Fori=1;i=10;i++Printf“%5d”a[i];Printf“\n”;Fori=1;i=9;i++{min=i;Forj=i+1;j=10;j++Ifa[min]a[j]min=j;Temp=a[i];a[i]=a[min];a[min]=temp;}Printf“\nthesortednumber:\n”;Fori=1;i=10;i++Printf“%5d”a[i];}
2、__in{intijupplowdigspaoth;Chartext
[3]
[80];Upp=low=dig=spa=oth=0;Fori=0;i3;i++{printf“\npleaseinputline%d:\n”i++;Getstext[i];Forj=0;j80text[i][j]!=’\0’;j++{iftext[i][j]’A’text[i][j]=’Z’Upp++;Elseiftext[i][j]=’a’text[i][j]=’z’Low++;Elseiftext[i][j]=’0’text[i][j]=’9’Dig++;Elseiftext[i][j]==’‘Spa++;ElseOth++;}}Fori=0;i3;i++Printf“%s\n”text[i];Printf“uppercase:%d\n”upp;Printf“uppercase:%d\n”low;Printf“digit:%d\n”dig;Printf“spa__:%d\n”spa;Printf“other:%d\n”oth;}
3、#defineN5__in{inta[N]itemp;Printf“enterarraya:\n”;Fori=0;iN;i++Scanf“%d”a[i];Printf“arraya:\n”;Fori=0;iN;i++Printf“%4d”a[i];Fori=0;iN/2;i++{temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}Printf“\nnowarraya:\n”;Fori=0;iN;i++Printf“%4d”a[i];Printf“\n”;}第7章函数
1、选择题
1、在C语言函数的定义和引用中,以下描述正确的是_____A、必须有形式参数B、也可以没有形式参数C、数组名不能作为形式参数D、形式参数必须是变量名
2、以下函数定义形式正确的是_______A、doublefunintxinty{z=x+y;Returnz;}B、myfunintxy{intz;Returnz;}C、myfunxy{intxy;Doublez;Z=x+y;Returnz;}D、doublefunxy {doublez;z=x+y;returnz;}
3、在C程序中,下面描述正确的是_____A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数调用都可以嵌套D、函数的定义和调用都不可以嵌套
4、若调用一个函数,且此函数中没有return语句,则正确的说法是______A、该函数没有返回值B、该函数返回若干个系统默认值C、能返回一个用户所希望的函数值D、返回一个不确定的值
5、C语言规定,函数返回值的类型是由_______决定的A、return语句中的表达式类型B、调用该函数时的主调函数类型C、调用该函数时由系统临时D、在定义函数时所指定的函数类型
6、以下不正确的说法是_______A、全局变量,静态变量的初值是在编译时指定的B、静态变量如果没有指定初值,则其初值为0C、局部变量如果没有指定初值,则其初值不确定D、函数中的静态变量在函数每次调用时,都会重新设置初值
2、填空题
1、C语言函数返回类型的默认定义类型是
2、函数的实参传递到形参有两种方式和
3、在一个函数内部调用另一个函数的调用方式称为在一个函数内部直接或间接调用该函数成为函数的调用方式
4、C语言变量按其作用域分为和
5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为
3、看程序写结果
1、#includestdio.hIntabcintuintv;Void__in{inta=24b=16c;c=abcab;printf“value=%d”c;}Intabcintuintv{intw;Whilev{w=u%v;u=v;v=w;}Returnu;}
2、#includestdio.hintx1=30x2=40;__in{intx3=10x4=20;subx3x4;subx2x1;printf“%d%d%d%d\n”x3x4x1x2;}subintxinty{x1=x;x=y;y=x1;}
3、#includestdio.h__in{inti=5;Printf“%d\n”subi;}subintn{inta;Ifn==1return1;a=n+subn-1;returna;}
4、#includestdio.hVoidfun{staticintm;m+=2;printf“%d”m;}__in{inta;Fora=1;a=4;a++fun;Printf“\n”;}
4、编程题
1、编写一个函数,判断任一整数是否为素数,用__in函数调用并测试之
2、用递归方法求n!
3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和最低分参考答案
1、选择题
1、B
2、D
3、B
4、A
5、D
6、A
二、填空题
1、整型
2、值传递、地址传递
3、递归、嵌套
4、全局变量、局部变量
5、自动局部变量
2、看程序写结果
1、Value=
82、
102040403、
154、
24683、编程题
1、#includestdio.h#include__th.hIntprimeintx{intiflag=1;Fori=2;i=sqrtx;i++Ifx%i==0flag=0;Ifflag==1Return1;ElseReturn0;}__in{intx;Scanf“%d”x;Ifprimex==1printf“%disaprime.\n”x;Elseprintf“%disnotaprime\n.”x;}
2、floatfacintn{floatf;Ifn0{printf“n0dataerror!”;}Elseifn==0||n==1f=1;Elsef=facn-1*n;Returnf;}__in{intn;Floaty;Printf“inputanintergernumber:”;Scanf“%d”n;y=facn;printf“%d!=%
10.0f”ny;}
3、float__x=0min=0;float__eragefloatarray[]intn{inti;Float__ersum=array
[0];__x=min=array
[0];Fori=1;in;i++{ifarray[i]__x__x=array[i];Elseifarray[i]minmin=array[i];Sum=sum+array[i];}__er=sum/n;return__er;}__in{float__escore
[10];Inti;Fori=0;i10;i++Scanf“%f”score[i];__e=__eragescore10;Printf“__x=%
6.2f\__in=%
6.2f\n__erage=%
6.2f\n”__xmin__e;}第8章预处理命令
1、选择题
1、对宏命令的处理是____A、在程序执行时进行的B、在对程序中其他语句进行编译前进行的C、在程序连接时进行的D、与程序中其他语句同时进行编译
2、下面对编译预处理的叙述正确的是______A、预处理命令只能位于程序的开始处B、预处理功能是指完成宏替换和文件包含的调用C、只要行首以“#”标识的控制行都是预处理命令D、编译预处理就是对源程序进行初步的语法检查
2、编程题
1、输入一行字母字符,根据需要设置条件编译,使之能使将字母全改为大写输出,或全改为小写字母输出参考答案
一、选择题
1、B
2、C
二、编程题#defineLETTER1__in{charstr
[20]=”CLanguage”c;IntI;i=0;whilec=str[i]!=’\0’{i++;#ifLETTERIfc=’a’c=’z’c=c-32;#elseIfc=’A’c=’Z’c=c+32;#endifPrintf“%c”c;}}第9章指针
一、选择题
1、指针是一种____A、标识符B、变量C、内存地址D、运算符
2、显示指针变量P中的值,可以使用命令_____A、Printf“%d”p;B、Printf“%d”*p;C、Printf“%d”*p;D、Printf“%d”p;
3、为指针变量P输入整型变量i的地址,可以使用命令____A、Scanf“%p”p;B、*p=i;C、P=I;D、*p=I;
4、若有定义void*p;int*q;float*r下面操作不对的是____A、p=q;B、q=r;C、p=r;D、r=p;
5、若有说明#definem20intn=10;下面定义不正确的是______A、Floats[m];B、Floats[m*10];C、Floats[m+n];D、Floats[m+10];
6、若有定义inta[]={120};请问a[a[a
[0]]]=______A、0B、1C、2D、
37、若有chars
[10]*p=s;则下面表达式正确的是_____A、s=p+s;B、p=s+10;C、s
[2]=p
[4];D、p=s
[0];
8、定义整型指针变量p和q下面操作不正确的是_______A、Int*pq=null;B、Int*pq=nullnull;C、Int*p*q=nullnull;D、Int*p*q=null;
9、若有定义inta[]={123}b
[3]={123};请问a==b_______A、不能比较B、结果为真C、结果为假D、结果不确定
二、填空题
1、二级指针是存放一级指针的__________
2、指针变量虽然都是存放指针,但____不同
3、空指针名称是_______,表示没有指针的一种状态
4、函数名和_______名可以作为指针常量
5、不同类型的指针变量的赋值必须________
3、编程
1、输入3个整数,按由小到大的顺序输出
2、写一个函数,求一个字符串的长度在__in函数中输入字符串,并输出其长度
3、写一个函数,将一个3*3的矩阵转置
4、将n个数按输入顺序的逆序排列,用函数实现参考答案
1、选择题
1、C
2、D
3、C
4、B
5、C
6、A
7、C
8、D
9、D
二、填空题
1、单元地址
2、基类型
3、Null
4、数组
5、显式类型变换
2、编程题
1、__in{intn1n2n3;Int*p1*p2*p3;Printf“inputthreeintegersn1n2n3:”;Scanf“%d%d%d”n1n2n3;p1=n1;p2=n2;p3=n3;ifn1n2swapp1p2;ifn1n3swapp1p3;ifn1n3swapp2p3;printf“nowtheorderis:%d%d%d\n”n1n2n3;}Swapint*p1int*p2{intp;p=*p1;*p1=*p2;*p2=p;}
2、__in{intlen;Char*str
[20];Printf“inputstring:”;Scanf“%s”str;Len=lengthstr;Printf“Thelengthofstringis%d.”len;}Lengthchar*p{intn;N=0;While*p!=’\0’{n++;P++;}Returnn;}
3、__in{inta
[3]
[3]*pi;Printf“input__trix:\n”;Fori=0;i3;i++Scanf“%d%d%d”a[i]
[0]a[i]
[1]a[i]
[2];p=a
[0]
[0];movep;printf“now__trix:\n”;fori=0;i3;i++printf“%d%d%d\n”a[i]
[0]a[i]
[1]a[i]
[2];}Moveint*pointer{intij;Fori=0;i3;i++Forj=i;j3;j++{t=*pointer+3*i+j;*pointer+3*i+j=*pointer+3*j+i;*pointer+3*j+i=t;}}
4、__in{intin;Char*pnum
[20];Printf“inputn:”;Scanf“%d”n;Printf“pleaseinputthesenumbers:\n”;Fori=0;in;i++Scanf“%d”num[i];P=num
[0];Sortpn;Printf“nowthesequen__is:\n”;Fori=0;in;i++Printf“%d”num[i];}Sortcharpintm{inti;Chartemp*p1*p2;Fori=0;im/2;i++{p1=p+i;p2=p+m-1-i;temp=*p1;*p1=*p2;*p2=temp;}}第10章结构体与共用体
1、选择题
1、定义结构类型时,下列叙述正确的是____A、系统会按成员大小分配每个空间B、系统会按最大成员大小分配空间C、系统不会分配空间D、以上说法均不正确
2、已知结构类型变量x的初始化值为{“20”
304035.5}请问合适的结构定义是___A、Structs{intno;intxyz};B、Structs{charno
[2];intxyz};C、Structs{intno;floatxyz};D、Structs{charno
[2];floatxyz};
3、若程序中有定义structabc{intx;chary;};abcs1s2;则会发生的情况是____A、编译时会有错误B、链接时会有错误C、运行时会有错误D、程序没有错误
二、编程
1、已有ab两个链表,每个链表中的结点包括学号、成绩要求把两个链表合并,按学号升序排列参考答案选择题
1、C
2、D
3、A
二、编程题
1、#includestdio.h#definenull0#defineLENsizeofstructstudentStructstudent{longnum;Intscore;Structstudent*next;};StructstudentlistAlistB;Intnsum=0;__in{structstudent*creatvoidStructstudent*insertstructstudent*structstudent*;Voidprintstructstudent*;Structstudent*ahead*bhead*abh;Printf“\ninputlista:\n”;ahead=creat;sum=sum+n;printf“inputlistb:\n”;bhead=creat;sum=sum+n;abh=insertaheadbhead;printabh;}Structstudent*creatvoid{structstudent*p1*p1*head;n=0;p1=p2=structstudent*__llocLEN;printf“inputnumberscoresofstudent:\n”;printf“ifnumberis0stopinputing\n”;scanf“%ld%d”p1-nump1-score;head=null;whilep1-num!=0{n=n+1;Ifn==1head=p1;Elsep2-next=p1;p2=p1;p1=structstudent*__llocLEN;scanf“%ld%d”p1-nump1-score;}p2-next=null;returnhead;}Structstudent*insertstructstudent*ahstruct*bh{structstudent*pa1*pa2*pb1*pb2;pa2=pa1=ah;pb2=pb1=bh;do{whilepb1-numpa1-numpa1-next!=null{pa2=pa1;p1=pa1-next;}Ifpb1-num=pa1-num{ifah==pa1ah=pb1;elsepa2-next=pb1;pb1=pb1-next;pb2-next=pa1;pa2=pb2;pb2=pb1;}}Whilepa1-next!=null||pa1==nullpb1!null;Ifpb1-numpa1-numpa1-next==nullpa1-next=pb1;returnah;}Voidprintstructstudent*head{structstudent*p;Printf“\nthereare%drecords:\n”sum;p=head;ifp!=nulldo{printf“%ld%d\n”p-nump-score;p=p-next;}Whilep!=null;}第十一章位运算编程题
1、设计一个函数,使给出一个数的原码,能得到该数的补码参考答案__in{unsignedinta;Unsignedintgetbitsunsigned;Printf“\ninputanoctalnumber:”;Scanf“%o”a;Printf“result:%o\n”getbitsa;}Unsignedintgetbitsunsignedvalue{unsignedintz;z=value0_____0;ifz==0_____0z=~value+1;elsez=value;returnz;}第十二章文件
1、选择题
1、在C语言,文件由_____A、记录组成B、由数据行组成C、由数据块组成D、由字符(字节)序列组成
2、C语言中的文件类型只有____A、索引文件和文本文件两种B、ASCII文件和二进制文件两种C、文本文件一种D、二进制文件一种
3、C语言中文件的存取方式___A、只能顺序存取B、只能随机存取(或称直接存取)C、可以顺序存取,也可随机存取D、只能从文件的开头进行存取参考答案选择题
1、D
2、B
3、C。