C语言选择结构考试考试试题

合集下载

c语言选择结构程序设计习题册答案

c语言选择结构程序设计习题册答案

第五章选择结构程序设计基础练习(A)一、填空题1.关系表达式的运算结果是逻辑值。

C语言没有逻辑型数据, 以1 代表“真”, 以0代表“假”。

2.逻辑运算符!是单目运算符, 其结合性是由右结合性。

3.C语言提供的三种逻辑运算符是&& 、|| 、! 。

其中优先级最高的为! ,优先级最低的为| | 。

4.逻辑运算符两侧的运算对象不仅可以是0和1, 或者是0和非0的整数, 也可以是任何类型的数据。

系统最终以0 和非0 来鉴定它们属于“真”或“假”。

5、设y为int型变量, 请写出描述“y是偶数”的表达式(y%2==0) 。

6、设x, y, z均为int型变量, 请写出描述“x或y中有一个小于z”的表达式x<z||y<z 。

7、条件“2<x<3或x<-10”的C语言表达式是x<-10||x>2&&x<3。

8、判断char型变量ch是否为大写字母的对的表达式是(ch>=‘A’)&&(ch<=‘Z’)。

9、当a=3,b=2,c=1时, 表达式f=a>b>c的值是0 。

10、当a=5,b=4,c=2时, 表达式a>b!=c的值是 1 。

11.已知A=7.5,B=2,C=3.6, 表达式A>B&&C>A||A<B&&!C>B的值是0 。

12.若a=6,b=4,c=2, 则表达式!(a-b)+c-1&&b+c/2的值是 1 。

13、有int x,y,z;且x=3,y=-4,z=5, 则表达式(x&&y)==(x||z)的值为 1 。

14、有int x,y,z;且x=3,y=-4,z=5, 则以下表达式的值为 1 。

!(x>y)+(y!=z)||(x+y)&&(y-z)15.有int a=3,b=4,c=5,x,y;, 则以下表达式的值为0 。

c语言顺序结构和选择结构练习题

c语言顺序结构和选择结构练习题

C语言循环结构前的练习一、选择题:(2’*25=50)1、以下程序的输出结果为( C )# include “stdio.h”main(){ int i=4,a;a=i++;printf(“a=%d,i=%d”,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=52、以下叙述中正确的是( C )。

A)C语言程序总是从第一个定义的函数开始执行。

B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行。

D)C语言程序中的main()函数必须放在程序的开始部分。

3、下列选项中不正确的实型常量是( B )A)7.375E-1 B)0.3108e 2 C)-44.44 D)123e-24、在C程序中,可以作为用户标识符的一组标识符是( B )A)void define B)as_b3 _224 ElseC)Switch -wer case D)4b DO SIG5、 int类型变量所占字节数是( D )A)1 B)2 C)3 D)46、以下选项中合法的用户标识符是( B )。

A)long B) _2test C)3dmax D) a.dat7、以下有4组用户标识符,其中合法的一组是( C )。

A) for –sub case B) 4d do sizeC) f2_g3 If abc D) WORD void define8、经char w; int x; float y; double z;说明后表达式 w*x+z-y的类型是( D )。

A) float B) char C) int D) double9、下述程序的输出结果是( C )main(){ int a=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf(“%d,%d,%d”,k,a,b);}A)0,0,3 B)0,1,2 C)1,0,3 D)1,1,2 10、定义int n=5;下面语句的输出结果为( B )。

数据结构c语言期末考试题及答案

数据结构c语言期末考试题及答案

数据结构c语言期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构和非线性结构的区别在于()。

A. 结构中元素的个数B. 结构中是否包含子结构C. 结构中元素之间是否有一对一关系D. 结构中元素之间是否有一对多关系答案:C2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。

A. 存储密度高B. 存储密度低C. 插入和删除操作快D. 存储空间可以动态分配答案:A3. 在一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动的元素个数为()。

A. i-1B. n-iC. n-i+1D. n-i-1答案:B4. 栈的运算遵循()原则。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C5. 在二叉树的前序遍历中,访问顺序为()。

A. 根-左-右B. 左-根-右C. 左-右-根D. 右-左-根答案:A6. 哈希表的冲突解决方法中,链地址法是()。

A. 将所有元素存储在同一个存储单元B. 将所有元素存储在同一个链表中C. 将所有元素存储在同一个数组中D. 将所有元素存储在同一个链表的同一个位置答案:B7. 在图的遍历中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于()。

A. 遍历的顺序不同B. 遍历的起点不同C. 遍历的路径不同D. 遍历使用的存储结构不同答案:D8. 快速排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B9. 归并排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B10. 在二叉搜索树中,查找一个元素的时间复杂度为()。

A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的时间复杂度通常用______来描述。

答案:大O符号2. 线性表的两种基本操作是插入和______。

C语言循环结构选择题(新)

C语言循环结构选择题(新)
while ((ch=getchar( ))!='\n') { if (ch>='A' && ch<='Z') ch=ch+32;
else if (ch>='a' && ch<'z') ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A) ABCdef
B) abcDEF
i++;
} while(i!=0);
}
A) 7
B) 6
C) 5
D) 4
C
31、下面程序的运行结果是( )。
main( )
{ int s=0,i=1;
while (s<=10)
{ s=s+i*i;
i++;
}
printf("%d",--i);
}
A) 4
B) 3
C) 5
D) 6
B
32、以下程序的输出结果是( )。
{ int s=0,k;
for(k=7;k>=0;k--)
{switch(k)
{
case 1:
case 4:
case 7: s++; break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s+=2; break; }
}
printf("s=%d\n",s);
for(t=1;t<=100;t++) { scanf("%d",&x);

数据结构c语言版试题及答案

数据结构c语言版试题及答案

数据结构c语言版试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 若有一个结构体数组,下列哪个函数可以用来初始化数组中的每个元素?A. memsetB. memcpyC. strcpyD. bzero答案:A3. 在C语言中,以下哪个函数用于动态分配内存?A. mallocB. callocC. reallocD. all of the above答案:D4. 对于一个链表,以下哪个操作是正确的?A. 插入节点B. 删除节点C. 遍历链表D. all of the above答案:D5. 在C语言中,以下哪个函数用于释放动态分配的内存?A. freeB. mallocC. callocD. realloc答案:A二、填空题(每题3分,共15分)1. 结构体定义的关键字是______。

答案:struct2. 在C语言中,动态分配内存失败时,malloc函数返回______。

答案:NULL3. 单链表的头节点指针通常初始化为______。

答案:NULL4. 双向链表中,每个节点包含______个指针。

答案:两个5. 树的深度优先遍历包括______、中序遍历和后序遍历。

答案:前序遍历三、简答题(每题5分,共20分)1. 请简述C语言中结构体和联合体的区别。

答案:结构体(struct)可以包含不同类型的数据,并且可以有多个实例;联合体(union)可以包含不同类型的数据,但是只能有一个实例,即在任意时刻只能存储其中一个成员的值。

2. 动态内存分配的优点是什么?答案:动态内存分配允许程序在运行时根据需要分配内存,这样可以更有效地使用内存资源,并且可以创建大小不固定的数据结构。

3. 链表相比于数组有哪些优点?答案:链表的优点包括动态大小,可以灵活地插入和删除节点,不需要预先知道数据的大小。

数据结构试题及答案c语言版

数据结构试题及答案c语言版

数据结构试题及答案c语言版一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的链表定义?A. struct Node { int data; struct Node *next; };B. struct Node { int data; Node *next; };C. struct Node { int data; struct Node *next; } *Node;D. struct Node { int data; Node *next; };答案:A2. 下列关于栈的描述中,错误的是?A. 栈是一种后进先出(LIFO)的数据结构。

B. 栈的插入操作称为push。

C. 栈的删除操作称为pop。

D. 栈可以存储任意数量的数据。

答案:D3. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A4. 下列关于队列的描述中,正确的是?A. 队列是一种先进先出(FIFO)的数据结构。

B. 队列只能从队尾进行插入操作。

C. 队列的插入操作称为pop。

D. 队列的删除操作称为push。

答案:A5. 在C语言中,以下哪个函数用于创建一个动态数组?A. mallocB. callocC. reallocD. all of the above答案:D6. 下列关于二叉树的描述中,错误的是?A. 二叉树的每个节点最多有两个子节点。

B. 二叉树的子节点被称为左子树和右子树。

C. 二叉树的遍历方式包括前序、中序、后序。

D. 二叉树的每个节点只能有一个子节点。

答案:D7. 在C语言中,以下哪个函数用于释放动态分配的内存?A. freeB. mallocC. callocD. realloc答案:A8. 下列关于图的描述中,错误的是?A. 图是由顶点和边组成的数据结构。

B. 图的边可以是有向的,也可以是无向的。

C. 图的顶点可以是孤立的,没有边与之相连。

C语言选择结构程序设计练习题

C语言选择结构程序设计练习题

C语⾔选择结构程序设计练习题第四章选择结构程序设计⼀、填空1.在C语⾔中,表⽰逻辑“真”值⽤_________。

2.得到整型变量a的⼗位数字的表达式为_________。

3.表达式:(6>5>4)+(float)(3/2)的值是_________。

4.表达式:a=3,a-1‖--a,2*a的值是_________。

(a是整型变量)5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。

(a是整型变量)6.C语⾔编译系统在给出逻辑运算结果时,以数值_________代表“真”,以_________代表“假”;但在判断⼀个量是否为“真”时,以_________代表“假”,以_________代表真。

7.当m=2,n=1,a=1,b=2,c=3时,执⾏完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。

8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。

⼆、编程:1.企业发放的奖⾦根据利润提成。

利润(i)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润i,求应发放奖⾦总数?2.输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。

3.输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?4.本程序演⽰从键盘输⼊x的值,计算并打印下列分段函数的值。

y=0(x<60)y=1(60<=x<70)y=2(70<=x<80)y=3(80<=x<90)y=4(x>=90)5.在显⽰器上显⽰⼀个菜单程序的模型。

大一c语言选择考试题及答案

大一c语言选择考试题及答案

大一c语言选择考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义整型变量的关键字是:A. intB. floatC. doubleD. char答案:A2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2答案:B3. C语言中,用于计算两个数的和的运算符是:A. +B. -C. *D. /答案:A4. 在C语言中,以下哪个选项不是控制语句?A. ifB. switchC. forD. printf答案:D5. C语言中,用于定义字符型变量的关键字是:A. intB. charC. floatD. double答案:B6. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World'"D. 'Hello World'答案:A7. C语言中,用于定义浮点型变量的关键字是:A. intB. charC. floatD. double答案:C8. 在C语言中,以下哪个选项是正确的数组声明?A. int numbers[];B. int numbers[10];C. int numbers[10] = {0};D. All of the above答案:D9. C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add();C. int add(int a, b);D. int add(int a, int b) {}答案:A10. C语言中,以下哪个选项是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D二、多项选择题(每题3分,共15分)11. C语言中,以下哪些选项是合法的变量名?A. _myVarB. 2myVarC. myVar2D. my-var答案:A, C12. C语言中,以下哪些选项是合法的常量?A. 123B. 3.14159C. 'A'D. "Hello"答案:A, B, C, D13. C语言中,以下哪些选项是合法的运算符?A. +=B. &&C. ||D. %答案:B, C, D14. C语言中,以下哪些选项是合法的控制语句?A. ifB. elseC. whileD. break答案:A, B, C, D15. C语言中,以下哪些选项是合法的函数参数传递方式?A. 值传递B. 地址传递C. 指针传递D. 引用传递答案:A, B, C三、填空题(每题4分,共20分)16. 在C语言中,声明一个整型变量并初始化为10,可以使用语句:________。

(完整版)c语言选择结构试题带答案

(完整版)c语言选择结构试题带答案

(完整版)c语言选择结构试题带答案一、选择题1. 以下非法的赋值语句是A: n=(i=2,++i); B: j++; C: ++(i+1); D: x=j>0;2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6 B: 0 C: 2 D: 13. 阅读以下程序:main(){ int x;scanf(“%d”,&x);if(x--<5) printf(“%d”,x);else printf(“%d”,x++);}程序运行后,如果从键盘上输人5,则输出结果是()。

A: 3 B: 4 C: 5 D: 64. 有如下程序main0{ int a=2,b=-1,c=2;if(a<b)< bdsfid="79" p=""></b)<>if(b<0) c=0;else c++printf("%d\n",c);}该程序的输出结果是A: 0 B: 1 C: 2 D: 35. 有以下程序#includemain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是( )。

A: 2,1 B: 3,2 C: 4,3 D: 2,-16.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ){ int x;scanf("%d",&x);if(x + + >5) printf("%d",x);else printf("%d\n",x - -); }A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和47. 能表示x 为偶数的表达式是A: x%2==0 B: x%2==1 C: x%2 D: x%2!=08. 下面的程序段中共出现了几处语法错误?int a,b;scanf("%d",a);b=2a;if(b>0) printf("%b",b);A: 1 B: 2 C: 3 D: 49. C 语言中,逻辑“真”等价于A: 大于零的数B: 大于零的整数C: 非零的数D: 非零的整数10. C 语言的switch 语句中,case 后A: 只能为常量B: 只能为常量或常量表达式C: 可为常量及表达式或有确定值的变量及表达式D: 可为任何量或表达式11. 已知int i=10;表达式"20-0<=i<=9"的值是A: 0 B: 1 C: 19 D: 2012. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为A: 1 B: 2 C: 3 D: 013. 逻辑运算符两侧运算对象的数据类型A: 只能是0 或1B: 只能是0 或非0 正数C: 只能是整型或字符型数据D: 可以是任何类型的数据14. 能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()A: (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B: (x>=1)||(x<=10)||(x>=200)||(x<=210)C: (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D: (x>=1)||(x<=10)&&(x>=200)||(x<=210)15. 已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!y)的值是()A: 0 B: 1 C: 语法错误D: 假16. 执行下列语句后a 的值为int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A: 5 B: 0 C: 2 D: 117. 以下程序的输出结果是()main(){ int a=5,b=0,c=0;if(a=b+c) printf(“***\n”);else printf(“$$$\n”);}A: 有语法错误不能通过编译B: 可以通过编译但不能通过连接C: ***D: $$$18. 以下程序的输出结果是()main(){ int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);}A: 4 B: 5 C: 6 D: 719. 若运行时给变量x 输入12,则以下程序的运行结果是()main(){ int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A: 0 B: 22 C: 12 D: 1020. 若w=1,x=2,y=3,z=4,则表达式w<x?w:y<="" 2="" 3="" 4="" b:="" bdsfid="163" c:="" d:="" p="" 的值是a:=""></x?w:y21. 设有int a=2,b;则执行b=a&&1;语句后,b 的结果是A: 0 B: 1 C: 2 D: 322. 设有int m=1,n=2;则++m==n 的结果是A: 0 B: 1 C: 2 D: 323. 设有int n=2;则++n+1==4 的结果是A: true B: false C: 1 D: 024. 设有int n=2;则++n+1==4,n 的结果是A: 1 B: 2 C: 3 D: 425. 以下使i 的运算结果为4 的表达式是A: int i=0,j=0; (i=3,(j++)+i);B: int i=1,j=0; j=i=((i=3)*2);C: int i=0,j=1; (j==1)?(i=1):(i=3);D: int i=1,j=1; i+=j+=2;26. 当a=5,b=2 时,表达式a= =b 的值为A: 2 B: 1 C: 0 D: 527. 若执行以下程序时从键盘上输入9,_______则输出结果是main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}A: 11 B: 10 C: 9 D: 828. main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A: 6,1 B: 2,1 C: 6,0 D: 2,029. 若有int x=10,y=20,z=30;以下语句执行后x,y,z 的值是()if (x>y)z=x;x=y;y=z;A: x=10,y=20,z=30B: x=20,y=30,z=30C: x=20,y=30,z=10D: x=20,y=30,z=2030. 下列表达式中能表示a 在0 到100 之间的是A: a>0&a<100 B: !(a<0||a>100) C: 0<a0&&a<100)</a31. 为了避免嵌套的if—else 语句的二义性,C 语言规定else 总是与()组成配对关系。

数据结构c语言期末考试试题及答案

数据结构c语言期末考试试题及答案

数据结构c语言期末考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于创建链表节点?A. mallocB. callocC. reallocD. free答案:A3. 如果一个链表的头指针为NULL,这意味着什么?A. 链表为空A. 链表已满C. 链表正在使用中D. 链表已损坏答案:A4. 在C语言中,以下哪个数据结构允许快速随机访问?A. 链表B. 数组C. 栈D. 队列5. 在二叉树中,以下哪个术语描述了没有子节点的节点?A. 根节点B. 叶节点C. 内部节点D. 父节点答案:B6. 以下哪个算法用于在二叉搜索树中查找一个元素?A. 深度优先搜索B. 广度优先搜索C. 插入排序D. 二分查找答案:D7. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. struct答案:A8. 以下哪个选项是正确的递归函数定义?A. int fact(int n) { if (n > 1) return n * fact(n-1); else return 1; }B. int fact(int n) { if (n > 1) return n * fact(n); else return 1; }C. int fact(int n) { if (n > 1) return n * fact(n+1); else return 1; }D. int fact(int n) { if (n > 1) return n; else return 1; }9. 在C语言中,以下哪个函数用于释放动态分配的内存?A. mallocB. callocC. reallocD. free答案:D10. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. &答案:C二、填空题(每题2分,共20分)1. 在C语言中,结构体的成员可以通过其结构体变量名和______访问。

数据结构c语言版考试题及答案

数据结构c语言版考试题及答案

数据结构c语言版考试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项不是合法的数组声明?A. int a[10];B. int b[2][3];C. int c[];D. int d[0];答案:D2. 链表与数组相比,以下哪个特点是链表独有的?A. 随机访问B. 动态存储分配C. 连续存储D. 固定大小答案:B3. 在C语言中,以下哪个函数用于创建一个单链表节点?A. mallocB. callocC. reallocD. free答案:A4. 栈的后进先出(LIFO)特性是指?A. 最后插入的元素最先被删除B. 最先插入的元素最先被删除C. 最后插入的元素最后被删除D. 最先插入的元素最后被删除答案:A5. 在二叉树中,叶子节点是指?A. 没有子节点的节点B. 只有一个子节点的节点C. 有两个子节点的节点D. 既没有左子节点也没有右子节点的节点答案:A6. 哈希表解决冲突的常用方法不包括?A. 开放寻址法B. 链地址法C. 线性探测法D. 排序法答案:D7. 在图的遍历中,深度优先搜索(DFS)使用的是?A. 栈B. 队列C. 链表D. 数组答案:A8. 快速排序算法的时间复杂度在最好情况下是?A. O(n^2)B. O(n)C. O(nlogn)D. O(logn)答案:C9. 以下哪个不是二叉搜索树的性质?A. 左子树上所有节点的值小于根节点的值B. 右子树上所有节点的值大于根节点的值C. 左子树和右子树都是二叉搜索树D. 所有节点的值都相等答案:D10. 以下哪个算法不是排序算法?A. 冒泡排序B. 选择排序C. 插入排序D. 深度优先搜索答案:D二、填空题(每题2分,共20分)1. 在C语言中,动态分配的内存需要使用________函数来释放。

答案:free2. 一个完全二叉树的第i层(从0开始计数)最多有________个节点。

答案:2^i3. 在图的表示方法中,邻接矩阵适合表示________图,邻接表适合表示________图。

c语言数据结构期末考试试题及答案

c语言数据结构期末考试试题及答案

c语言数据结构期末考试试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。

A. 执行算法所需要的计算量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:A2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。

A. 存储密度高B. 存储密度低C. 存储空间少D. 存储空间多答案:A3. 在一个单链表中,若头节点不包含数据,其头节点的作用是()。

A. 存储数据B. 存储空指针C. 存储尾节点的指针D. 存储首元素的指针答案:D4. 一个算法的空间复杂度是指()。

A. 执行算法所需要的计算量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:B5. 栈的特点是()。

A. 先进先出B. 后进先出C. 随机进先出D. 随机进后出答案:B6. 以下哪个数据结构是动态的()。

A. 数组B. 链表C. 栈D. 队列答案:B7. 在二叉树的遍历中,先序遍历的顺序是()。

A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A8. 哈希表解决冲突的方法不包括()。

A. 开放定址法B. 链地址法C. 线性探测法D. 二分查找法答案:D9. 以下哪种排序算法的时间复杂度为O(nlogn)()。

A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B10. 以下哪个不是图的遍历算法()。

A. 深度优先搜索B. 广度优先搜索C. 回溯D. 归并排序答案:D二、填空题(每题2分,共20分)1. 在C语言中,动态分配内存的函数是___________。

答案:malloc2. 线性表的两种存储结构是顺序存储结构和___________。

答案:链式存储结构3. 栈的基本操作包括入栈和___________。

答案:出栈4. 在二叉树中,度为2的节点称为___________。

答案:分支节点5. 哈希表中,解决冲突的方法之一是___________。

c语言选择题试题及答案

c语言选择题试题及答案

c语言选择题试题及答案1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,哪个是正确的?A. 函数可以没有返回值,但不能没有参数B. 函数可以没有参数,但不能没有返回值C. 函数可以没有返回值,也可以没有参数D. 函数必须有返回值和参数答案:C3. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是一条注释B. /* 这是一条注释 */C. // 这是一条注释D. /* 这是一条注释 */答案:B4. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A5. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. ^答案:B6. 下列关于C语言数组的描述,哪个是错误的?A. 数组可以是多维的B. 数组的索引从0开始C. 数组的大小在声明时确定D. 数组的大小可以在运行时改变答案:D7. 在C语言中,以下哪个选项是正确的字符串声明方式?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str[] = 'Hello';D. char str[] = "Hello", "World";答案:A8. 在C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B9. 在C语言中,以下哪个关键字用于定义一个类型别名?A. structB. unionC. enumD. typedef答案:D10. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:B。

c语言的选择结构的试题及答案

c语言的选择结构的试题及答案

c语言的选择结构的试题及答案1. 以下哪个关键字用于C语言的选择结构中?A. ifB. elseC. switchD. while答案:A2. 考虑以下代码段:```cint a = 10;if (a > 5)printf("a is greater than 5");```这段代码的输出是什么?A. a is greater than 5B. a is less than 5C. 没有输出D. 编译错误答案:A3. 下列哪个选项正确地描述了if-else语句的工作原理?A. 如果条件为真,则执行if块,否则执行else块。

B. 如果条件为假,则执行if块,否则执行else块。

C. 如果条件为真,则执行else块,否则执行if块。

D. 无论条件真假,都执行if块和else块。

答案:A4. 以下代码段的输出是什么?```cint x = 20;if (x > 10)if (x > 15)printf("x is greater than 15");elseprintf("x is less than or equal to 15");```A. x is greater than 15B. x is less than or equal to 15C. 没有输出D. 编译错误答案:A5. 以下哪个选项是switch语句的正确用法?A. switch (condition) { case 1: statement; break; }B. switch (condition) { case 1: statement; default: statement; }C. switch (condition) { default: statement; case 1: statement; }D. switch (condition) { case 1: statement; case 2: statement; }答案:D6. 考虑以下代码段:```cint score = 75;switch (score / 10) {case 10:case 9: printf("A"); break;case 8: printf("B"); break;case 7: printf("C"); break;case 6: printf("D"); break;default: printf("F");}```这段代码的输出是什么?A. AB. BC. CD. F答案:C7. 在C语言中,以下哪个关键字用于在if语句中创建条件?A. ifB. elseC. switchD. while答案:A8. 以下代码段的输出是什么?```cint a = 10;if (a > 5)if (a < 20)printf("a is between 5 and 20");```A. a is between 5 and 20B. 没有输出C. 编译错误D. a is less than 5答案:A9. 以下哪个选项正确地描述了switch语句的工作原理?A. 它检查一个变量的值,并执行与该值匹配的case块。

C语言选择结构选择题

C语言选择结构选择题

如果c为字符型变量,判断c是否为空格不能使用________。

A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')运行下面程序时,若从键盘输入"456<CR>",则程序的输出结果是( )。

#include <stdio.h>void main( ){ int magic=123;int guess;scanf("%d",&guess);if (guess==magic)printf("**Right**");else{printf("**Wrong**");if (guess>magic)printf("Too high**");elseprintf("Too low**");}}执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是( )。

#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是( )。

c语言选择结构练习题

c语言选择结构练习题

C语言选择结构练习题一、单选题A. ifB. switchC. forD. while2. 当表达式 (a > b) 为真时,下列哪个表达式的值为假?A. !(a <= b)B. (a == b)C. (a >= b)D. (a != b)A. ifelseB. switchcaseC. whileD. dowhile4. 当if语句的条件为真时,下列哪个选项的语句不会执行?A. if语句内的语句B. else语句内的语句C. if语句和else语句内的语句D. 与if语句平级的下一个语句二、多选题A. ifB. else ifC. switchD. forA. if和else语句块只能包含一条语句B. if和else语句块可以包含多条语句,但需要用大括号括起来C. if语句块后面可以不跟else语句块D. else语句块后面可以继续跟if语句块A. 没有与case匹配的值B. case后面的值与switch表达式匹配C. switch表达式为空D. default分支位于所有case分支之前三、填空题1. 在C语言中,______ 关键字用于实现选择结构。

2. 当if语句的条件为真时,执行______ 语句块;当条件为假时,执行______ 语句块。

3. 在switch语句中,每个case分支后面需要使用______ 语句来跳出switch结构。

四、编程题1. 编写一个C程序,输入一个整数,判断它是正数、负数还是零,并输出相应的结果。

2. 编写一个C程序,输入三个整数,找出其中的最大值并输出。

3. 编写一个C程序,根据用户输入的成绩(0100),输出相应的等级(A、B、C、D、E)。

4. 编写一个C程序,输入一个年份,判断它是否为闰年,并输出结果。

5. 编写一个C程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。

用户输入两个整数和一个运算符,程序输出运算结果。

C语言 第四章 选择结构程序设计期末测试习题与答案

C语言 第四章 选择结构程序设计期末测试习题与答案
C.其之后最近的if
D.其之前最近的没有else配对的if
参考答案:D
12、在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( )。
A.if (a)语句1 else语句2
B.if (a!=0)语句1 else语句2
C.if (a==0)语句2 else语句1
D.if (a==0)语句1 else语句2
printf(“a=%d,b=%d\n”,aa=2,b=2
C.a=1,b=0
D.a=1,b=1
参考答案:B
16、假定所有变量均已正确说明,以下程序段运行后的输出结果是( )。
int a=1,b=5,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
D.if(a==0) printf("%d\n",x); else printf("%d\n",y);
参考答案:D
2、假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=12; if(!a)x--; else x=5; if(c) x=3; else x=4;
A.3
B.4
C.12
int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n");
A.3
B.5
C.1
D.2
参考答案:A
5、当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。
A.k%2==1

c语言选择题考试题库及答案

c语言选择题考试题库及答案

c语言选择题考试题库及答案一、单项选择题1. C语言中,用于定义变量的关键字是()。

A. varB. defineC. intD. void答案:C2. 下列哪个选项是C语言中的合法标识符?()A. 2variableB. variable2C. variable-2D. variable$2答案:B3. C语言中,用于表示逻辑“与”操作的运算符是()。

A. &&B. ||C. !D. &答案:A4. C语言中,用于表示逻辑“或”操作的运算符是()。

A. &&B. ||C. !D. &答案:B5. C语言中,用于表示逻辑“非”操作的运算符是()。

A. &&C. !D. &答案:C6. C语言中,用于表示“等于”关系的运算符是()。

A. ==B. =C. !=D. <=答案:A7. C语言中,用于表示“不等于”关系的运算符是()。

A. ==B. =C. !=答案:C8. C语言中,用于表示“小于等于”关系的运算符是()。

A. ==B. =C. <=D. >=答案:C9. C语言中,用于表示“大于等于”关系的运算符是()。

A. ==B. =C. <=D. >=答案:D10. C语言中,用于表示“取模”操作的运算符是()。

A. %B. /C. *D. -答案:A11. C语言中,用于表示“整除”操作的运算符是()。

A. %B. /C. *D. -答案:B12. C语言中,用于表示“乘法”操作的运算符是()。

A. %C. *D. -答案:C13. C语言中,用于表示“加法”操作的运算符是()。

A. +B. -C. *D. /答案:A14. C语言中,用于表示“减法”操作的运算符是()。

A. +B. -C. *答案:B15. C语言中,用于表示“左移”操作的运算符是()。

A. <<B. >>C. <=D. >=答案:A16. C语言中,用于表示“右移”操作的运算符是()。

c语言选择法试题及答案

c语言选择法试题及答案

c语言选择法试题及答案C语言选择法试题及答案1. 以下哪个选项是C语言中选择结构的关键字?A. switchB. ifC. whileD. do答案:B2. 以下哪个语句用于执行条件判断?A. if (condition)B. switch (expression)C. for (initialization; condition; increment)D. while (condition)答案:A3. 假设有一个变量 `score` 表示一个学生的分数,以下哪个选择结构可以用来判断学生的成绩等级?A. if (score >= 90)B. switch (score)C. for (int i = 0; i < 100; i++)D. while (score != 100)答案:A4. 在C语言中,`switch` 语句中的 `case` 后面应该跟什么?A. 一个表达式B. 一个变量C. 一个常量表达式D. 一个函数答案:C5. 以下哪个选项是C语言中 `if` 语句的正确用法?A. if (x > y)B. if x > yC. if (x > y) elseD. if (x > y) else if答案:A6. 假设 `a` 和 `b` 是两个整数变量,以下哪个选择结构可以用来交换 `a` 和 `b` 的值?A. if (a > b) { int temp = a; a = b; b = temp; }B. switch (a > b) { case 1: int temp = a; a = b; b = temp; }C. for (int i = 0; i < 1; i++) { int temp = a; a = b; b = temp; }D. while (a != b) { int temp = a; a = b; b = temp; }答案:A7. 在C语言中,`else` 语句应该与哪个关键字配对使用?A. ifB. switchC. forD. while答案:A8. 以下哪个选项是 `switch` 语句的正确用法?A. switch (a) { case 1: ...; break; case 2: ...; break; }B. if (a) { case 1: ...; break; case 2: ...; break; }C. switch (a) { if 1: ...; break; if 2: ...; break; }D. switch (a) { case 1: ...; default: ...; }答案:A9. 在C语言中,`break` 语句的作用是什么?A. 退出当前循环B. 退出当前函数C. 退出当前选择结构D. 继续执行下一个循环答案:C10. 以下哪个选项是 `if-else` 语句的正确用法?A. if (condition) { ... } else { ... }B. if (condition) { ... } else { ... }C. if (condition) { ... } else if { ... }D. if (condition) { ... } else if { ... }答案:A。

C语言选择结构作业(含解答)

C语言选择结构作业(含解答)

C语言选择结构作业(含解答)选择结构作业解答(3)一、选择题:1.判断char型变量ch是否位数字的表达式的是:a)‘0’ < = ch <= ’9’b) (ch > ‘0’)&&( ch <’9’)c) (ch >= ‘0’)&&( ch <= ’9’) d) (ch >= ‘0’)||( ch <= ’9’)答案:b)2.能正确表示a和b不同时为0的逻辑表达式的是:a) a*b==0 b) (a==0)||( b==0)c) (a==0&&b!=0)&&( b==0&&a!=0) d)(a! = 0)||( b != 0)答案:d)解答:3.能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是:a) a==-b && a%2==0 b) a!=b && a+b==0 && a%2c) !(a%2)&&a==-b d) a%2==0 a+b==0答案:d)解答:4.有以下程序:#includevoid main{ int x=2,y=3,z;char ch=‘a’;z=(x||!y)&&(ch>’A’);}程序运行后z的值是a)true b)false c)0 d)15.关于if后面一对圆括号中的表达式,叙述正确的是a) 只能用关系表达式b) 只能用逻辑表达式c) 只能用关系表达式或逻辑表达式d) 可以使用任意合法的表达式6.对switch后面一对圆括号中的表达式,叙述正确的是a) 只能用数字b) 可以是浮点数c) 只能用整型数据或字符型数据d)以上叙述都不对7.以下不正确的if语句是a) if (a<="" if="" p="" t="a;">c) if (a=b) printf(“equal”); c)if (a>b)&&(b>c) printf(“max=%d”,a);8.有以下程序:#includevoid main(){ int m=-2;if(m=0) printf(“@@@”);else printf(“%%%”); }程序运行后的输出结果是:a)@@@ b)%%% c)%% d)@@@%%% 9.有以下程序:#includevoid main(){ int a=12,b=20,t=18;if(a>b) t=a;a=b;b=t;printf(“a=%d,b=%d,t=%d”,a,b,t); }程序运行后的输出结果是:a)a=12,b=20,t=18 b)a=20,b=18,t=18c) a=20,b=12,t=12 d)a=20,b=18,t=1210.有以下程序:#includevoid main(){ int t=65;if(t>45) printf(“%d”,t);else printf(“%d”,t);if(t>35) printf(“%d”,t);else printf(“%d”,t);if(t>25) printf(“%d”,t); }程序运行后的输出结果是:a)65 b)6565 c) 656565 d)不确定的值11.有以下程序:#includevoid main(){ int t=8;if(t-->=8) printf(“%d\n”,t--);else printf(“%d\n”,t++); }程序运行后的输出结果是:a)9 b)8 c) 7 d)612.有以下程序:#includevoid main(){ int a=2,b=5,c=3,d=2,x;if(a%3>b)if(c>d)if(b<="" p="" x="++b">else x=++d;else x=--c ;else x=++b ; }程序运行后的x 的值是:a )6 b)3 c) 2 d)713. 与“y=(x>0?x:x<0?-x:0)”的功能相同的if 语句是b) if (x>0) y=x;else if(x<0) y=-x;else y=0;14. 若a 、b 、c1、c2均是整型变量,x ,y 是浮点型变量,则以下正确的switch 语句是a) switch (c1+c2){case 1:y=a+b;break ;case 2:y=a-b;break; case 1:y=b-a;break;} b ) switch (x+y){ case 1:case 2:printf(“%d ”,a+b);break; }d )switch (a-b){default: y=a*b;break; case 10:case 9: x=a+b;break; case 7:case 5: y=b-a;break;} c ) switch (c1+c2); {case c1:y=a-b;break ; case c2:x=a*b;break; default:x=a+b;}b )if (x)if(x>0) y=x;c) y=-x; if (x)if(x>0) y=x;a) if (x)if(x>0) y=x; d) y=0; if (x>=0) if(x>0) y=x;15.以下关于switch和break语句的说法中正确的是a)break语句只能用在switch语句中;b)在switch语句中,可以根据需要决定是否使用break语句;c)在switch语句中必须使用break语句;d)以上选项都不正确;16.有以下程序:#includevoid main(){ int c;c=getchar();switch(c-‘2’){ case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3);case 4: putchar(c+2);break;}}程序运行后,输入2<回车>,输出结果是:a)66 b)6 c)6654 d)没有输出内容二、填空题:1.关系运算符、逻辑运算符、算术运算符和赋值运算符的运算优先级顺序由高到低的排列顺序是算术运算符、关系运算符、逻辑运算符、赋值运算符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言选择结构考试试题
一、选择题(每题2分,共30分)
1. 有如下程序: main ()
{ int x=1,a=0,b=0; switch (x )
{ case 0: b++; case 1: a++; case 2: a++;b++; }
printf ("a=%d,b=%d \n",a,b );} 该程序的输出结果是 A )a=2,b=1 B )a=1,b=1 C )a=1,b=0 D )a=2,b=2
2. 有以下程序 main () { int i=1,j=1,k=2; if ((j++||k++)&&i++)
printf ("%d,%d,%d \n",i,j,k );} 执行后输出结果是 A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3
3. 有如下程序 main () { float x=2.0,y; if (x<0.0)y=0.0; else if (x<10.0)y=1.0/x; else y=1.0;
printf ("%f \n",y );} 该程序的输出结果是 A )0.000000 B )0.250000 C )0.500000 D )1.000000 4. 设int x=1,y=1;表达式(!x||y--)的值是 A )0 B )1 C )2
D )-1
5. 若运行时给变量x 输入12,则以下程序的运行结果是 main () { int x,y;
scanf ("%d",&x ); y=x>12?x+10:x-12;
printf ("%d \n",y );} A )0 B )22 C )12
D )10
6. 在C 程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。

在求逻辑值时,用()表示逻辑表达式值为“真”, 又用()表示逻辑表达式值为“假”。

A )1 0
B )0 1
C )非0 非0
D )1 1
7. 若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后
a<=25&&b--<=2&&c?printf ("***a=%d,b=%d,c=%d \n",a,b,c ):printf ("###a=%d,b=%d,c=%d \n",a,b,c );程序输出的结果是
A )***a=25,b=13,c=19
B )***a=26,b=14,c=19
C )### a=25,b=13,c=19
D )### a=25,b=14,c=19 8. 有如下程序 main ()
{ float x=2.0,y; if (x<0.0)y=0.0; else if (x>10.0)y=1.0/x; else y=1.0;
printf ("%f \n",y );} 该程序的输出结果是 A )0.000000 B )0.250000 C )0.500000 D )1.000000
9. 以下4个选项中,不能看做一条语句的是
A );
B )a=5,b=2.5,c=3.6;
C )if (a<5);
D )if (b!=5)x=2;y=6; 10. 能正确表示逻辑关系:“a ≥10或a ≤0”的C 语言表达式是 A )a>=10 or a<=0 B )a>=0|a<=10 C )a>=10 &&a<=0 D )a>=10‖a<=0 11. 有如下程序 main ()
{ int a=2,b=-1,c=2; if (a<b ) if (b<0)c=0; else c++;
printf ("%d \n",c );} 该程序的输出结果是 A )0 B )1 C )2 D )3
12. 设x ,y 和z 都是int 型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A )x&&y
B )x<=y
C )x||++y&&y-z
D )!(x<y&&!z||1)
13. 若有条件表达式 (exp )?a++:b--,则以下表达式中能完全等价于表达式(exp )
的是 A )(exp==0) B )(exp!=0) C )(exp==1) D )(exp!=1)
14. 以下程序的输出结果是
main ()
{ int a=4,b=5,c=0,d; d=!a&&!b||!c;
printf ("%d \n",d );}
利川职校 201___级_____________班 姓名___________ 考号____________________
…………………………装……………………………………………订…………………………………………线…………………………
A)1 B)0 C)非0的数D)-1
15.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是
A)1 B)2 C)3 D)4
16.设x,y,t均为int型变量,执行语句:
x=y=3;
t=++x||++y;
完成后,y的值为
A)不确定B)4 C)3 D)1
17.请阅读以下程序:
main()
{ int a=5,b=0,c=0;
if(a=b+c)printf("***\n");
else printf("$$$\n");} 以上程序
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
18.当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是
A)m=k=n B)(m=k)&&(n=k)
C)(m=k)||(n=k)D)(k=m)&&(n=k)
19.下列程序的运行结果是
#include "stdio.h"
main()
{ int x=-9,y=5,z=8;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);}
A)6 B)7 C)8 D)9
20、若执行下面的程序时,从键盘上输入5和2,则输出结果是
main()
{ int a,b,k;
scanf("%d,%d ",&a,&b);
k=a;
if(a<b)k=a%b;
else k=b%a;
printf("%d\n ",k);}
A)5 B)3 C)2 D)0
二、程序设计(每空20分,共40分)
1、输入三个数a,b,c,要求从小到大输出。

2、要求根据考试成绩的等级输出百分之分数段,A等为85分以上,B等为70~84分,C 等为60~69分,D等为60分一下。

成绩的等级由键盘输入。

答题卡。

相关文档
最新文档