C语言(顺序结构)习题与答案
- 格式:docx
- 大小:15.57 KB
- 文档页数:4
C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3C.For D.2a define _123 -abcDOWORD IF Casesizeof5.下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\tD.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signedC.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9.一个C程序是由()。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。
顺序结构程序设计习题一、选择题:(以下各题□代表空格。
)1.以下程序运行的结果是:#include <stdio.h>int main(){int m=5,n=10;printf(“%d,%d\n”,m++,--n);}A)5,9 B)6,9 C)5,10 D)6,102.以下程序运行的结果是:#include <stdio.h>int main(){int a=201,b=012;printf(“%2d,%2d\n”,a,b);return 0}A)01,12 B)201,10 C)01,10 D)20,013.有定义语句int a,b;若要通过语句scanf(“%d,%d,”&a,&b);使变量a得到数值6,变量b得到数值5,下面输入形式,错误的是:A)6,5<回车> B)6,□□<回车>C)6 5<回车> D)6,<回车>5<回车>4.设有如下程序:#include <stdio.h>int main(){char ch1=’A’,ch2=’a’;printf”%c\n”,(ch1,ch2));return 0;}则以下叙述正确的是:A)程序的输出结果为大写字母A;B)程序的输出结果为小写字母a;C)运行时产生错误信息;D)格式说明符的个数少于输出项个数,编译出错。
5.以下程序运行的结果是:#include <stdio.h>int main(){int x1=0xabc,x2=oxdef;x2-=x1;printf(“%X\n”,x2);return 0;}A)ABC B)0XABC C)0X333 D)3336.以下程序输出的结果是:#include <stdio.h>int main(){ printf(“\n*s1=%15s*”,”chinabeijing”);printf(“\n*s2=%-5s*”,”chi”);}A)*s1=chinabeijing□□□*S2=**chi*B)*s1=chinabeijing□□□**s2=chi□□*C)*s1=*□□chinabeijing**s2=□□chi*D)*s1=□□□chinabeijing**s2=chi□□*7.已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的描述是:A)整形变量的输出格式符只有%d一种;B)%x是格式符的一种,它可以适应与任何一种类型的数据;C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度。
“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有( )。
A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和——四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。
顺序结构程序设计练习题 The following text is amended on 12 November 2020.C语言练习题总汇一、单选题:【顺序结构程序设计】1.己知int k,m=1;执行语句k=-m++;后k的值是( A )。
(提示:负号与自加运算符同级,结合方向从右向左)A)-1 B) 0 C)1 D)22.若有定义int x=4;则执行语句 x + = x * = x + 1;后,x的值为( C )。
A)5 B)20 C)40 D)无答案3.若有定义:float a=,b=,c=;则表达式1/2*(a+b+c)的值为( C )。
A) B)6 C) D)无答案4.以下程序段的输出结果是( C )。
(提示:a当约束过严时,约束失效。
按自由格式输出。
)int a=1234;printf("%2d\n",a);A)12 B)34 C)1234 D)提示出错,无结果5.下列程序段的输出结果是(C)。
int a=1234;float b=;double c=;printf("%2d,%,%",a,b,c);A)无输出 B)12, , C)1234,, D)1234,,6.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。
printf("%d,%d\n",x--,++y);A)8,5 B)7,5 C) 7,6 D) 8,67.以下程序的输出结果是( A )。
int main(){ int a=20,b=10;printf("%d,%%d\n",a+b,a-b); }A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符)8.下列程序的运行结果是(A)。
int main(){ float x=;int y;y=(int)x;printf("x=%f,y=%d",x,y);}A) x=,y=2 B)x=,y=2 C)x=2,y=2 D) x=,y=9.以下程序的输出结果是(A)。
C语言习题集第一章C语言概述复习要点:1. 程序的构成,main函数和其他函数。
2.语句,注释3.运行C程序的步骤和方法习题:1.C程序是由函数构成的,一个C程序中至少包含一个main函数。
2.函数是C程序的基本单位。
(最小单位是表达式)3.C程序有且只有一个main函数。
4.C程序从main函数开始执行。
5.C程序注释符是由/*和*/组成,且不能嵌套使用。
6.C程序的语句是以; 结束。
7.C程序一条语句可分多行写,需要以为连接符。
(可以直接换行)8.C程序可以用{ 和} 将多条语句括起来,形成复合语句。
9.上机运行一个C程序必须经过源代码输入,编译,连接,运行4个步骤。
10.C程序的源文件扩展名是。
c 。
11.以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数12.以下叙述中错误的是(D)A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令13.以下不是语句的是(A)A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;}14.运行以下程序main(){int a=10; /* 定义一个变量 aa=20; */printf(“%d”,A); 此程序应该改写为:printf(“%d”,a)}输出的结果是 B 。
A) 10 B)2015.牢记VC++6.0的出错提示英文提示中文实际意义missing ; , ( { 等表示缺少;,( {'T' : undeclared identifier T没有定义(T要先定义然后才能使用)'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含'T' : redefinition T重复定义(可能是多次定义了T)Cannot open include file 头文件的拼写或路径的不对第二章数据类型,运算符与表达式复习要点:1. C的数据类型(整型,字符型,浮点型)及其定义方法。
word格式-可编辑-感谢下载支持第2章基本数据类型及顺序结构程序设计一、选择题1、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定2、以下选项中不合法的标识符是(C)A)print B)FOR C)&a D)_003、可在C程序中用作用户标识符的一组标识符是(A)A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Big14、以下选项中不属于字符常量的是(B )A)'C' B)"C" C)'\xCC0' D)'\072'5、以下选项中,合法的一组C语言数值常量是(B)A)028 B)12. C).177 D) 0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e56、以下正确的字符串常量是(A)A) "\ \ \" B) ' abc ' C)Olympic Games D) ""7、下列定义变量的语句中错误的是(D)。
A)int _int;B)double int_; C)char For;D)float USS8、下列变量定义中合法的是(A)。
A) short _a=1.le-1;B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1e-3;9、以下定义语句中正确的是(C)A)int a=b=0 ; B)char A=65+1,b='b';C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;10、设有说明语句:char a=’\72’;则变量a(A)。
C语言顺序分支结构选择题及答案1.设ch是char型变量,其值为a,且有下面的表达式:ch=(ch>='a'&&ch<='z')?(ch+32):ch上面表达式的值是a)ab)ac)zd)zb2.设a,b和c都就是int型变量,且a=3,b=4,c=5,则下面的表达式中,值0的表达式就是a)'a'&&'b'b)a<=bc)a||b+c&&b-cd)!((a3.为表示关系x≥y≥z,应使用c语言表达式a)(x>=y)&&(y>=z)b)(x>=y)and(y>=z)c)(x>=y>=z)d)(x>=y)||(y>=z)a4.继续执行下面程序段intx=35;charz='a';intb;b=((x=15)&&(za)0b)1c)2d)3b5.表达式:10!=9的值是a)trueb)非零值c)0d)1d6.能正确表示a≥10或a≤0的关系表达式是a)a>=10ora<=0b)a>=10|a<=0c)a>=10||a<=0d)a>=10||a<=0d7.若建议在if后一对圆括号中则表示a不等同于0的关系,则能够恰当则表示这一关系的表达式为a)a<>0b)!ac)a=0d)ad8.设a=5,b=6,c=5,d=8,m=2,n=2,继续执行(m=a>b)&&(n=c>d)后n的值a)1b)2c)3d)0b9.设a为整型变量,无法恰当抒发数学关系:10表达式是a)1010&&a<15d)!(a<=10)&&!(a>=15)a10.若有以下定义:floatx;inta,b;则正确的switch语句是a)switch(x)b)switch(x){case1.0:printf(\{case1,2:printf(\case2.0:printf(\case3: printf(\}}c)switch(a+b)d)switch(a-b);{case1:printf(\{case1:printf(\case1-2:printf(\case2:printf(\}}a11.设a=1,b=2,c=3,d=4,则表达式:a12.设x、y、z、t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;a)不定值b)4c)1d)0c13.语句:printf(\的输入结果就是a)并无输入b)结果不确认c)-1d)1d14.能够恰当则表示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>0d15.有如下程序段inta=14,b=15,x;charc='a';x=(a&&b)&&(cc)0d)1d16.为了防止嵌套的if-else语句的二义性,c语言规定else总是与()组成配对关系。
顺序结构程序设计习题一、选择题:(以下各题□代表空格。
)1.以下程序运行的结果是:#include <stdio.h>int main(){int m=5,n=10;printf(“%d,%d\n”,m++,--n);}A)5,9 B)6,9 C)5,10 D)6,102.以下程序运行的结果是:#include <stdio.h>int main(){int a=201,b=012;printf(“%2d,%2d\n”,a,b);return 0}A)01,12 B)201,10 C)01,10 D)20,013.有定义语句int a,b;若要通过语句scanf(“%d,%d,”&a,&b);使变量a得到数值6,变量b得到数值5,下面输入形式,错误的是:A)6,5<回车> B)6,□□<回车>C)6 5<回车> D)6,<回车>5<回车>4.设有如下程序:#include <stdio.h>int main(){char ch1=’A’,ch2=’a’;printf”%c\n”,(ch1,ch2));return 0;}则以下叙述正确的是:A)程序的输出结果为大写字母A;B)程序的输出结果为小写字母a;C)运行时产生错误信息;D)格式说明符的个数少于输出项个数,编译出错。
5.以下程序运行的结果是:#include <stdio.h>int main(){int x1=0xabc,x2=oxdef;x2-=x1;printf(“%X\n”,x2);return 0;}A)ABC B)0XABC C)0X333 D)3336.以下程序输出的结果是:#include <stdio.h>int main(){ printf(“\n*s1=%15s*”,”chinabeijing”);printf(“\n*s2=%-5s*”,”chi”);}A)*s1=chinabeijing□□□*S2=**chi*B)*s1=chinabeijing□□□**s2=chi□□*C)*s1=*□□chinabeijing**s2=□□chi*D)*s1=□□□chinabeijing**s2=chi□□*7.已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的描述是:A)整形变量的输出格式符只有%d一种;B)%x是格式符的一种,它可以适应与任何一种类型的数据;C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度。
国二c语言题库选择题答案第一部分C基础部分及顺序结构参考答案及解析1、【答案】A【解析】C语言被称为“高级语言”是因为它用接近英语国家的自然语言和数学语言作为表达形式,使人们学习和操作起来感到十分方便,相对于其他的高级语言来说,C语言有它自身的优缺点,但却是用的最广泛的语言。
由于它可以直接控制计算机硬件,因此其编写的程序运行效率较高。
用C语言编写的程序称作C语言源程序,C源程序不能直接执行。
C语言的每条可执行语句最终将被转换成只有0和1的二进制的机器指令。
2、【答案】A【解析】用C语言编写的程序称作C语言源程序,C源程序不能直接执行。
C语言的每条可执行语句必须通过相关编译、链接程序、编译并链接成可执行程序(只有0和1的二进制的机器指令),才能在计算机上执行。
故选A。
C语言有3种基本结构组成:顺序结构,选择结构,循环结构。
这3种结构可以完成任何符合结构化的任务,每个任务设计到1-3种结构不等。
C语言算法有5个基本特征之一:有穷性,指的是算法必须在执行有限个步骤之后终止,并未限制具体步数。
3、【答案】D【解析】k=m*n=1错误,m*n是表达式,=左边只能出现单个变量,不可以为常量或表达式。
k=int(m+n)错误,类型名int出现表达式中表示强制类型转换,须加括号,改为k=(int)(m+n)k=-m-n错误,C语言语句需以分号结尾。
k=(m==n)合法,先运算m==n关系运算,结果为0或1,再将结果赋值给k4、【答案】C【解析】(A)int i=1; do{ i+=2;} while(i!=10);为无限循环,i的初始值为1,累加2多次后i值均为奇数,控制表达式i!=10永远为真。
B,int i=5; do{ i+=1;} while(i>0);为无限循环,控制表达式i>0永远为真。
D,int i=6; do{ i-=2;} while(i!=1);为无限循环,i值累减之后为偶数,控制表达式i!=1永远为真。
第1章 绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。
.试分析下面各程序段的时间复杂度。
(1)O (1) (2)O (m*n ) (3)O (n 2) (4)O (log 3n )(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O (n 2) (6)O(n )第2章 线性表1.选择题.选择题babadbcabdcddac 2.算法设计题.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。
)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。
ElemType Max (LinkList L ){if(L->next==NULL) return NULL; pmax=L->next; //假定第一个结点中数据具有最大值假定第一个结点中数据具有最大值 p=L->next->next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax->data) pmax=p; p=p->next; }return pmax->data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。
的存储空间。
void inverse(LinkList &L) { // 逆置带头结点的单链表 Lp=L->next; L->next=NULL; while ( p) {q=p->next; // q 指向*p 的后继 p->next=L->next;L->next=p; // *p 插入在头结点之后 p = q; }}、空间(n)、空间(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)的数据元素。
复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。
习题四一、选择题1.C语言程序的三种基本结构是()。
A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2.以下能正确定义且赋初值的语句是()。
A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5 3.以下能正确定义整型变量a,b和c并为其赋初值5的语句是()。
A. int a=b=c=5;B. int a,b,c=5;C. a=5,b=5,c=5;D. a=b=c=5;4.在下列选项中,不正确的赋值语句是()。
A.++t;B.n1=(n2=(n3=0));C.k=i==j;D.a=b+c=15.有以下程序:main(){ int a=0,b=0;a=10;b=20;printf("a+b=%d\n",a+b);}程序运行后的输出结果是()。
A.a+b=10B.a+b=30C.30D.出错6.有以下程序段:char ch='a';int k=12;printf("%c,%d,",ch,ch,k); printf("k=%d\n",k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是()。
A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=127.执行下面程序段后的输出结果是()。
int a=15;printf("a=%d,a=%o,a=%x\n",a,a,a);A.a=15,a=15,a=15B.a=15,a=017,a=0xfC.a=15,a=17,a=0xfD.a=15,a=17,a=f8.以下程序的输出结果是()。
main(){int a=010,b=10,c=0x10;printf("%d,%d,%d",a,b,c);}A.8,10,16B.8,10,10C.10,10,10D.10,10,169.以下程序的运行结果是()。
习题与参考答案第1章 C语言程序设计基础思考与练习一、填空题1、C程序是由构成的,一个C程序中至少包含。
2、C程序的注释是由和所界定的文字信息组成的。
3、开发一个C程序要经过编辑、、和运行4个环节。
4、C语言中,头文件的扩展名是。
5、C语言源程序的扩展名;经过编译后,生成文件的后缀是;经过连接后,生成文件的扩展名是。
二、简答题1、简述C语言程序的运行步骤。
2、软件编程中的可读性原则一般包括那些内容?3、什么是算法?算法的特点有哪些?4、参照本章例题,编写一个C程序,输出以下内容。
**************************************************Hello,world!**************************************************5、写出算法。
已知圆的半径,求周长和面积。
第1章思考与练习参考答案一、填空题1、函数、一个主函数main()2、/*、*/3、编译、连接4、.h5、.c、.obj、.exe二、简答题1、简述C语言程序的运行步骤。
答:(1)编辑C程序源文件;(2)编译,将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”;(3)连接,将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”连接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”;(4)运行程序。
如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→连接→运行的过程,直到取得预期结果为止。
2、软件编程中的可读性原则一般包括那些内容?答:1.编程规范概要(1)程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。
(2)打算干什么,要简单,直截了当,代码精简,避免垃圾程序。
(3)尽量使用标准库函数和公共函数。
(4)不要随意定义全局变量,尽量使用局部变量。
一、单选题
1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
程序编译时出错。
main()
/*Beginning */
{ int r; float s;
scanf("%d",&r);
s=π*r*r; printf("s=%f\n",s);
}
出错的原因是()。
A.计算圆面积的赋值语句中使用了非法变量
B.存放圆半径的变量r不应该定义为整型
C.注释语句书写位置错误
D.输出语句中格式描述符非法
正确答案:A
解析: A、π这个符合不是C语言的合法标识符,应提前进行常量定义
2、有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是()。
A.12343514
B.12353514
C.12343513
D.12353513
正确答案:B
解析: B、m++ ++在m后,先使用m的值输出,后给m增1
++m,++在m前,先给m的值增1后,再输出m
3、有定义语句:int b;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);
正确答案:D
解析: D、输入语句整型变量 b 需要取地址 &,c是数组名,本身就代表地址,所以不需要取地址符&
4、有以下程序
main()
{ int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。
A.123 456 789
B.m=123 n=456 p=789
C.m=123n=456p=789
D.m=123,n=456,p=789
正确答案:C
解析: C、输入语句中出现普通字符要按原样输入
5、有以下程序
main()
{ int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x);
}
程序运行后的输出结果是()。
A.1 65 1.0 6.5
B.1 65 1 6.5
C. 1 65 1.5 6.5
D.2 65 1.5 6.5
正确答案:C
二、填空题
1、有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是_______ 。
正确答案:-2
解析: x=-m++; 之后 x=-3 m=4
x=x+8/++n; 注意运算优先级先计算8/++n 既8/5=1,之后计算 x=-3+1 x的值为-2
2、有以下程序
main( )
{
int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是_______ 。
正确答案:102,10 或 102,10
解析: %2d,小于数值实际宽度,按数值实际宽度输出012是八进制数十进制输出为10
3、以下程序的输出结果是___________。
main()
{ int a=177;
printf("%o\n",a);
}
正确答案:261
4、以下程序的输出结果是___________。
main()
{ int a=0
a+=(a=8);
printf("%d\n",a);
}
正确答案:16
5、若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出结果是___________。
正确答案:-3。