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

合集下载

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题(含答案)C语言程序设计期末考试试题(含答案)一、选择题(共20题,每题2分,共40分)在每个题目给出的选项中选出一个正确答案,并将其序号填入题前括号内。

1. 下列关于C语言标准库的说法,错误的是:A. C语言标准库提供了多个头文件,如<stdio.h>、<stdlib.h>等。

B. C语言标准库中包含了很多有用的函数和变量。

C. C语言标准库的函数和变量的声明保存在头文件中。

D. C语言标准库中的函数和变量可以直接使用,无需任何声明和定义。

2. 下面哪个选项是正确的整型常量表示法?A. 3.14B. 'A'C. 3.0E8D. 0xFC3. 下面代码中,输出结果是多少?```c#include <stdio.h>int main() {int x = 3, y = 4, z;z = (x++) + (++y);printf("%d\n", z);return 0;}```A. 7B. 8C. 9D. 104. 下面哪个选项是正确的声明一个指向整型数据的指针?A. int *ptr;B. int ptr;C. *int ptr;D. ptr *int;5. 下面哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int a, b);C. add(int a, int b);D. add(int a, b);(略去其他题目...)二、编程题(共2题,每题30分,共60分)请编写符合题目要求的程序。

1. 题目描述:编写一个程序,实现求解1至100之间的所有偶数的和,并打印输出结果。

以下是程序的运行示例:```1至100之间的所有偶数的和为2550。

```2. 题目描述:编写一个程序,实现将用户输入的英文句子的每个单词首字母变为大写,并打印输出结果。

以下是程序的运行示例:```请输入一个英文句子:hello world!转换后的句子为:Hello World!```三、简答题(共2题,每题10分,共20分)请简要回答以下问题。

C语言(顺序结构)习题与答案

C语言(顺序结构)习题与答案

一、单选题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.12343514B.12353514C.12343513D.12353513正确答案:B解析: B、m++ ++在m后,先使用m的值输出,后给m增1++m,++在m前,先给m的值增1后,再输出m3、有定义语句: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,则正确的输入是()。

C语言(顺序结构程序设计)习题与答案

C语言(顺序结构程序设计)习题与答案
D.ch='a+b';
正确答案:D
16、已知ch是字符型变量,下面正确的赋值语句是( )。
A.ch="\";
B.ch= '\xff';ห้องสมุดไป่ตู้
C.ch= '123';
D.ch= '\08';
正确答案:B
二、判断题
1、每个语句和数据定义的最后都必须有分号。(√)
2、算述运算*、/、+和一具有相同的优先级。(×)
A.0~65535
B.0~2147483647
C.0~32767
D.0~255
正确答案:A
12、已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( )。
int a1,a2; char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A.必须在系统调用的库函数的后面
B.必须在最开始
C.可以任意
D.必须在最后
正确答案:C
3、下面四个选项中,均是不合法的浮点数的选项是( )。
A.160.
0.12
e3
B.123
2e4.2
.e5
C.-e3
.234
1e3
D..18
123e4
0.
正确答案:B
4、下面四个选项中,均是合法浮点数的选项是( )。
A.+le+1
5e-9.4
03e2
B.123e
1.2e-.4
+2e-1

《C语言程序设计》期末考试试卷以及答案提示

《C语言程序设计》期末考试试卷以及答案提示

《C语言程序设计》期末考试试卷以及答案提示一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 B 。

A、 C语言简洁、紧凑B、能够编制出功能复杂的程序(任何程序都可以,不算特点)C、 C语言可以直接对硬件进行操作D、 C语言移植性好2、以下不正确的C语言标识符是 DA、ABCB、abcC、a_bcD、a b.c(只能是字母,下划线,数字;另外数字不可开头)3、一个C语言程序是由 B 。

A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 BA、有零个或多个输入B、有零个或多个输出(有一个或多个输出)C、有穷性D、可行性5、设变数a是整型,f是实型,i是双精度型,则表达式10+…a?+i*f值的数据类型为 CA、intB、floatC、doubleD、不确定(低类型要转换为高类型)6、在C语言中,char型数据在内存中的存储形式是 D 。

A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是 B 。

#includemain(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、345(由scanf语句可知取三位数值给X)8、若有以下定义int a,b; float x,则正确的赋值语句是 B 。

A、 a=1,b=2(少了分号)B、 b++;C、 a=b=5(句末少了分号)D、 b=int(x);(右侧要是确切的值)9、以下程序的执行结果是 A。

#include{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,9(i是先加一再使用,j是先使用再减一)10、巳知字母A的ASCII码是65,以下程序的执行结果是 D 。

C语言程序设计期末考试卷及答案

C语言程序设计期末考试卷及答案

第 1 页 共 10 页C 语言程序设计(ch én ɡ x ù sh è j ì)期末考试卷及答案一、单项选择题。

从A 、B 、C 、D 四个选项中,选择(xu ǎnz é)一个最佳答案填入括号内( 每小题1分,共计(ɡòn ɡ j ì)30分)。

1.一个(y ī ɡè)C 语言程序(ch éngx ù)的执行是从( )。

A )本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B )本程序的main 函数开始,到main 函数结束C )本程序的main 函数开始,到本程序文件的最后一个函数结束D )本程序文件的第一个函数开始,到本程序的main 函数结束2.下列选项中不属于...C 语言关键字的是( )。

A )switchB )printfC )defaultD )case3.设有语句 int a = 4; ,则执行了语句 a += a -= a * a; 后,变量a 的值是( )。

A )24B ) -24C )4D )164.已知int i;float d;,则正确的表达式是( )。

A )(int d)B )int(d)%iC )(int)d%iD )int(d%i)5.已知int i,a;,执行语句i=(a=3*9,a/5),a+11; 后,变量i 的值是( )。

A )5B )16C )27D )386.下列选项中合法的字符型常量是( )。

A )"a"B )'\n'C )"\n"D )a7.下面程序的运行结果是( )。

#include <stdio.h> void main( ) { int k = 15;printf("k = %d,k = %o,k = %x\n",k,k,k); }A )k = 15,k = 15,k = 15B )k = 15,k = 17,k = 17C )k = 15,k = 017,k = 0xfD )k = 15,k = 17,k = f 8.已知a,b,c 为int 类型,执行语句:scanf ("%d%d%d",&a,&b,&c );使得a 为10,b 为20,c 为30,以下不正确...的输入形式是( )。

计算机二级c语言第三章 顺序结构试题与答案

计算机二级c语言第三章 顺序结构试题与答案

第三章顺序结构一、选择题1、以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句2、以下能正确定义且赋初值的语句是A)int n1=n2=10; B)double c=32;C)float f=f+1.1; D)double x=12.3E2.5;3、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;4、以下非法的赋值语句是A)n=(i=2,++i); B)j++; C)++(i+1); D)x+=j;5、以下合法的赋值语句是A)x=y=100 B)d- -; C)x+y; D)c=int(a+b);6、有以下程序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)m=123n=456p=789 B)123,456,789C)m=123,n=456,p=789 D)123 456 7897、有以下程序main(){ int m=0256,n=256;printf("%o %o\n",m,n);}程序运行后的输出结果是A)0256 0400 B)0256 256 C)256 400 D)400 4008、有以下程序{ int a=666,b=888;printf("%d\n",a,b);}程序运行后的输出结果是A)错误信息 B)666 C)888 D)666,8889、有以下程序main( ){int x=102,y=012;printf("%2d,%2d\n",x,y);}执行后输出结果是A)10,01 B)02,12 C)102,10 D)02,1010、有以下程序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 6.5 B)1 65 1.5 6.5C)1 65 1.0 6.5 D)2 65 1.5 6.511、设有如下程序段:int x=2002,y=2003;printf("%d\n",(x,y));则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为200312、若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A)0X0 B)0x0 C)0 D)0XABC13、设有定义:long x=-123456L;则以下能够正确输出变量x值的语句是A)printf("x=%d\n",x); B)printf("x=%ld\n",x);C)printf("x=%8dL\n",x); D)printf("x=%LD\n",x);14、以下程序段的输出结果是int a=1234;printf("%2d\n",a);A)12 B)34 C)1234 D)提示出错、无结果15、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A)10<回车> 22<回车> 33<回车> B)10.0,22.0,33.0<回车>C)10.0<回车> 22.0 33.0<回车> D)10 22<回车> 33<回车>16、有如下程序main0{ int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是A)3 4 B)4 2 C)4 3 D)3 317、下列程序执行后的输出结果是(小数点后只写一位)main(){ double d; float f; long l; int i;i=f=1=d=20/3;printf("%d %ld %f %f\n", i,l,f,d);}A)6 6 6.0 6.0 B)6 6 6.7 6.7C)6 6 6.0 6.7 D)6 6 6.7 6.018、以下程序的输出结果是main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);}A)17,021,0x11 B)17,17,17C)17,0x11,021 D)17,21,1119、若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n",u,v,w);则输出结果是:A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,1020、请读程序:#includemain(){ int a; float b, c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d, b=%f, c=%f\n", a, b,c);}若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是A)a=98, b=765, c=4321B)a=10, b=432, c=8765C)a=98, b=765.000000, c=4321.000000D)a=98, b=765.0, c=4321.021、以下程序的输出结果是# includemain(){ int a=1,b=4,c=2;float x=10..5 , y=4.0 , z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;A)14.000000 B)015.400000 C)13.700000 D)14.90000022、以下程序的输出结果是# includemain(){ int a=2,c=5;printf("a=%%d,b=%%d\n",a,c);}A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d23、执行下面程序中的输出语句,a的值是main(){ int a;printf("%d\n",(a=3*5,a*4,a+5));}A)65 B)20 C)15 D)10二、填空题:1、以下程序运行后的输出结果是main() { int x=0210; printf("%x\n",x); }2、以下程序运行后的输出结果是main(){ char c; int n=100;float f=10; double x;x=f*=n/=(c=50);}3、以下程序运行时若从键盘输入:10 20 30<回车>。

数据结构与算法(C语言篇)第3章 习题答案[3页]

习题答案1.填空题(1)栈(2)队列(3)后进先出(4)先进先出2.选择题(1)A (2)C (3)D (4)D、A (5)C (6)B3.思考题(1)栈是一种运算受限制的线性表,其只允许在表的一端进行插入和删除操作,俗称堆栈。

允许进行操作的一端称为“栈顶”,而另一个固定端称为“栈底”,栈中的数据在进行入栈和出栈时,遵循后进先出的原则。

队列同样是一种运算受限制的线性表,是限制在两端进行插入和删除操作的线性表。

允许进行插入操作的一端称为“队尾”,而允许进行删除操作的一端称为“队头”,队列中的数据在进行入队和出队时,遵循先进先出的原则。

4.编程题(1)//入栈//参数1为栈顶指针(头结点指针),参数2为插入的数据int linkstack_push(linkstack_t *s, datatype_t value){linkstack_t *temp;//使用malloc函数为新插入的结点申请内存空间temp = (linkstack_t *)malloc(sizeof(linkstack_t));//为新插入的结点赋值temp->data = value;//用头插法实现入栈temp->next = s->next;s->next = temp;return 0;}//判断栈是否为空int linkstack_empty(linkstack_t *s){return s->next == NULL ? 1 : 0; //判断下一个结点是否为空}//出栈datatype_t linkstack_pop(linkstack_t *s){linkstack_t *temp;datatype_t value;if(linkstack_empty(s)){printf("linkstack empty\n");return -1;}//头删法表示出栈,后入先出temp = s->next;s->next = temp->next;//保存出栈的数据value = temp->data;//释放出栈的结点的内存空间free(temp);temp = NULL;//返回出栈的数据return value;}(2)//入队//参数1为存放队列头尾结点指针的结构体地址,参数2为新入队的数据int linkqueue_enter(linkqueue_t *lq, datatype_t value){ linknode_t *temp;//使用malloc函数为头结点申请内存空间temp = (linknode_t *)malloc(sizeof(linknode_t));//采用尾插法的设计思想temp->data = value; //为新结点赋值temp->next = NULL; //将新结点的指针指向NULLlq->rear->next = temp; //入队,将新结点加入队列尾部lq->rear = temp; //移动rear指针,指向新加入的结点 return 0;}//判断队列是否为空int linkqueue_empty(linkqueue_t *lq){//当front与rear指向同一个结点时,判断队列为空return lq->front == lq->rear ? 1 : 0;}//出队//从头结点开始删除,包括头结点datatype_t linkqueue_out(linkqueue_t *lq){linknode_t *temp;datatype_t value;if(linkqueue_empty(lq)){printf("linkqueue empty\n");return -1;}temp = lq->front; //获取删除结点//移动front指针到下一个结点lq->front = lq->front->next;//获取下一个结点的数据value = lq->front->data;free(temp); //释放需要删除结点的内存空间 temp = NULL; //避免出现野指针//返回结点数据return value;}。

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。

2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。

3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。

4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。

5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。

c语言程序设计第三章答案

第三章习题答案一、选择题(带**号的题选作)1) 以下叙述中正确的是()A) C语言的基本组成单位是语句B) C程序中的每一行只能写一条语句C) 简单C语句必须以分号结束D)C语句必须在一行内完成2)下列叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C) 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行3) 计算机能直接执行的程序是()A)源程序 B)目标程序 C)汇编程序 D)可执行程序4)以下叙述中错误的是A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法5)对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束6)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数7) 以下关于C语言的叙述中正确的是A) C语言中的注释不可以夹在变量名或关键字的中间B) C语言中的变量可以再使用之前的任何位置进行定义C) 在C语言算术的书写中,运算符两侧的运算数类型必须一致D) C语言的数值常量中夹带空格不影响常量值的正确表示8)以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数9)以下叙述中正确的是A) C程序中的注释只能出现在程序的开始位置和语句的后面B) C程序书写格式严格,要求一行内只能写一个语句C) C程序书写格式自由,一个语句可以写在多行上D) 用C语言编写的程序只能放在一个程序文件中10)C语言源程序名的后缀是A).exe B).C C).obj D).cp11)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的12) 以下选项中不能作为C语言合法常量的是 ( )A) ‘cd’ B) 0.1e+6 C) “a” D)‘\011’13)一下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L14) 以下选项中不属于字符常量的是A)'C' B)"C" C)'\xCC0' D)'\072' 15)以下合法的字符型常量是A)’\x13’B)’\018’C)”65” D)”\n”16) 以下不合法的字符常量是A)'\018' B)'\”' C) '\\' D) ‘\xcc' 17) 以下不合法的数值常量是A)011 B)1e1 C) 8.0E0.5 D) 0xabcd 18)以下选项中能表示合法常量的是A)整数:1,200 B)实数:1.5E2.0C)字符斜杠:‘\’ D)字符串:"\007"19) C源程序中不能表示的数制是()A) 二进制 B) 八进制 C) 十进制 D) 十六进制20) 以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A.5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e521)以下不合法的用户标识符是A)j2_KEY B)Double C) 4d D) _8_22)一下选项中合法的标识符是A)1_1 B)1-1 C)_11 D)1_ _23) 以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned 24)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母 B)连接符 C)数字字符 D)下划线25)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl26) 以下C语言用户标示符中,不合法的是A)_1 B)AaBc C)a_b D)a--b 27)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00 28)下列定义变量的语句错误的是()。

C语言程序设计期末练习题及答案(完美版)

C语言程序设计期末练习题及答案一、选择题:1、一个C程序的执行是从()A、本程序的main函数开始,到本程序文件的最后一个函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到main函数结束D、本程序文件的第一个函数开始,到本程序main函数结束2、以下程序的运行结果为()main(){ini a= IOO,x= 10,y=20,ok I=5,ok2=0;if(x<y)if(y!=10)if(!okl)a=l;elseif(ok2)a=10;a=-l;printf("%d\rT,a);)A、1 B、0 C. -1 D、值不确定3、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行c2='A' + '6'-'3';后,ascii码值为()无答案A、B B、66 C、不确定的值D、1144、已知inia=12,语句a+=a—=a*=a;执行后,a的值为()A、a= -100 a= -120 C、a=0 D、a=125、下面有关for循环的正确描述是()A、for循环只能用于循环次数己知的循环B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,且必须用花括号括起来6、以下程序段()x= -1;do{x=x*x;}while(!x);A、是死循环B、循环执行两次C、循环执行一次D、有语法错误6、若有说明:inta[3][4];则对a数组元素的正确引用是()A、al2]l4]B、al 1,3]C、a[l + lJlO]D、a(2)(l)7、判断字符串a和b是否相等,应当使用()A、if(a==b) B> if(a=b) C> if(strcpy(a,b) D、if(slrcmp(a,b)==l)8、若i为整型变最,则以下循环执行次数为Ofor(i=2;i==0; )printf(w%d,,,i-);A、无限次B、0次C、1次D、2次9、若用数组名作为函数调用的实参,传递给形参的是()A、数组第一个元素的值B、数组中全部元素的值C、数组元素的个数D、数组的首地址10、以下叙述中不正确的是()A、预处理命令行都必须以#号开始B、在程序中凡是以#号开始的语句行都是预处理命令行C、C程序在执行过程中对预处理命令行进行处理D、预处理命令不占用程序的执行时间11、以下程序的运行结果是()#dcfine MIN(x,y) (x)<(y)?(x): (y)main(){int i=10,j=15,k;k=IO*MIN(i,j);printf(M%d\n,,,k);)A、10 B、15 C、100 D、15012、以下有关宏替换的叙述不正确的是()A、宏替换不占用运行时间B、宏名无类型C、宏替换只是字符替换D、宏名必须用大写字母表示13、若有以下宏定义:#define N 2#define Y(n) ((N+l)*n)则执行语句z=2*(N+Y(5));后的结果是()A、语句有错误B、z=34 C> z=70 D、z无定值14、已有定义int k=2; int *pl, *p2;且pl、p2均已指向变量k,下面不能正确执行的赋值语句是()A、k=*pl+*p2 B、p2=k C> pl=p2 D、k=*pl * (*p2)15、若有以下定义,则对a数组元素的正确引用是()int a[5], *p=a;A、*&a[5]B、a+2C、*(p+5)D、*(a+2)17、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方式是OA、(*p)max(a,b);*pmax(a,b)C、(*p)(a,b)D、*p(a,b)18、若有以下说明语句,则对pup中sex域的正确引用方式是()struct pupil{char name[20];int sex;(pup,*p;p=&pup;A、p.pup.sex B、p->pup.sex C、(*p).pup.sex D、(*p).sex19、语句int(*ptr)();的含义是()A、ptr是指向一维数组的指针变量B、pir是指向int型数据的指针变量C、ptr是指向函数的指针,该函数返回一个int型数据D、ptr是一个函数名,该函数的返回值是指向ini型数据的指针20、若有以下说明语句:struct student{int age;int num;}std, *p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是()A、std.age B、p->age C、(*p).ageD、*p.age二、写出下列程序的运行结果或指明其完成的功能1、写出下面程序的运行结果main(){int t=1605,h,m;h=(t/100)%12;if(h==0)h=12;printf(“%d:”,h);m=t%100;if(mvlO)printf("O”);printf(“%d”,m);if(t<1200||t==2400)printf(w AM M);else printf(w PM,9);)4:05PM2、写出下面程序的运行结果main(){int a,b,c;int s,w,t;s=w=t=0;a= -l;b=3;c=3;if(c>0) s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}else if(c>0)w=a-b;else t=c;printf(w%d %d %d,,,s,w,t);}2003、写出下面程序的运行结果niain(){int ij,x=O;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2==0) continue;x++;)x++;}printf(u x= % d\n”,x);)x=84、写出下面程序的运行结果int a=5; int b=7; main(){int a=4,b=5,c;c=plus(a,b);printf(u A+B=5 % d\n,,,c);)plus(int x,int y){int z;z=x+y;return(z);)A+B=95、写出下面程序的运行结果main(){increment();incrementO;incrementO;)increment(){static int x=O;x+=l;printf("%d\n",x);}1236、指明下面程序完成的功能int fac(int n){static int f=l;f=f*n;rcturn(f);)niain(){intj;for(j=l;j<=5;j++)printf(w%d!=%d\n,,j,fac(j));)输出1〜5的阶乘7、写出下面程序的运行结果#include “stdio.h"main()(int a[10]={ 2,4,6,8,10,12,14,16,18,20 }, *p=a,i ;for(i=0;i<2;i++)(printf("%d ”/p++);printf(<4%d ”/++p);printf(w%d ”,(%)++);printf(w\n w);)}2667 10 10三、完善程序1、下面程序的功能是打卬100以内个位数为6且能被3整除的所有数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
B.scanf(“%dV%dV%d”,&a,&b,&c);
C.scanf(“%d,%d,%d”,&a,&b,&c);
D.scanf(“%2d%3d%4d”,a,b,c);
参考答案:C
5、若int a,b; double x;
以下不合法的scanf函数调用语句是( )。
参考答案:C
17、以下程序段的输出结果是
int a=1234;
printf("a=%2d\n",a);
A.提示出错、无结果
B.a=34
C.a=1234
D.a=12
参考答案:C
18、下列关于printf()函数说法错误的是( )。
A.printf()函数是库函数,必须使用#include命令将其包含进来
printf(" %d %d\n",(++x ,y++),z+2);}
运行该程序的输出结果是( )。
A.4 2
B.33
C.4 3
D.3 4
参考答案:B
24、下列程序的输出结果是( )。
main()
{ double d=3.2; int x ,y ;
x=1.2 ; y=(x+3.8)/5.0;
printf("%d \n", 7.3);}
A.3
B.3.07
C.0
D.3.2
参考答案:C
25、以下程序的输出结果是( )。
main( )
{
inmp;&!b||!c;
printf("%d\n",d);
}
A.非0的数
B.1
C.-1
D.0
参考答案:B
26、若有以下程序
main( )
{
int k=2,i=2,m;
B.10,2,x10
C.10,12,a
D.10,o10,x10
参考答案:C
13、下列程序执行后的输出结果是( )。
void main()
{
printf(“\’s1=%7s\’”,”hello”);
A.\’s1=”hello”\’
B.s1=7hello
C.s1=”hello”
D.’s1= hello’
A.a=20 b=30 c=10;
B.a=20,b=30,c=20;
C.a=10,b=20,c=30;
D.20,30,10
参考答案:B
16、有以下程序段:
main()
{char c;
c=getchar();},若在键盘上输入hello,则c获得的数据为( )。
A.无数据
B.(hello)
C.h
D.hello
B.printf(“x=%8dL\n”,x);
C.printf(“x=%d\n”,x);
D.printf(“x=%LD\n”,x);
参考答案:A
20、根据定义和数据的输入方式,输入语句的正确形式为( )。
已有定义:float f1,f2;
数据的输入方式:4.52
3.5
A.scanf("%3.2f %2.1f",&f1,&f2);
}
A.|8567 |
B.|-08567|
C.输出为|08567|
D.无输出
参考答案:A
28、)下面程序段的输出结果是( )。
main()
{
char c1='a',c2='f';
printf("%d,%c\n",c2-c1,c2-'a'+'B');
}
A.2,E
B.5,!
C.5,G
D.2,M
参考答案:C
B.scanf()函数的输入项可以是整型、实型、字符型等变量
C.scanf()函数输入数据时,必须指明变量的地址
D.scanf()函数输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("% 4.2f ",&f);
参考答案:C
11、若有以下定义和语句:
int a=010,b=0x10,c=10;
C语言 第三章 顺序结构程序设计期末测试习题与答案
1、关于算法的描述,下列正确的是( )。
A.一个算法可以没有输入,但必须有输出
B.一个算法必须要有输入,但可以没有输出
C.一个算法有几个输入就必须有几个输出
D.一个算法如果没有输入,则此算法是错误的
参考答案:A
2、算法的每一个步骤都应是确切定义的,不能有二义性,相同的输入应该得到相同的输出,这是算法的( )。
A.确定性
B.可行性
C.正当性
D.有穷性
参考答案:A
3、以下程序片段:
int x=2,y=3;
printf();
的运行结果是( )。
A.输出为:x=2
B.输出为:x=2,y=3
C.输出为:y=3
D.什么都不输出
参考答案:D
4、已知a,b,c为int型变量,若从键盘输入:2,3,4<回车>,使a的值为2,b的值为3,c的值为4,以下选项中合法的输入语句是( )。
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);
}
执行后的结果是( )。
A.6,4
B.8,3
C.8,6
D.7,4
参考答案:A
27、设a为int型变量,a=8567,则语句printf(“|%-06d|\n”,a);输出的结果为( )。
main()
{
int k=8567;
printf("|%-06d|\n",k);
}
A.9,10
B.11,10
C.10,9
D.010,9
参考答案:A
22、下列程序的运行结果是( )。
void main()
{
int a;
a=-2L;
printf("%d\n",a);
}
A.输出为不确定的值
B.输出值为2
C.赋值不合法
D.输出值为-2
参考答案:D
23、有如下程序:
main()
{ int x=3,y=3,z=1;
printf("%d,%d,%d\n",a,b,c);
则输出结果是:( )。
A.8,16,10
B.10,10,10
C.8,10,10
D.8,8,10
参考答案:A
12、以下程序的输出结果是( )。
main()
{ int a=10;
printf("%d,%o,%x \n",a,a,a);
}
A.d10,o10,x10,
B.printf()函数是格式化输出函数,格式控制字符控制了输出项的形式
C.printf()函数必须与scanf()函数配合使用
D.printf()函数可以输出一个对象,也可以输出多个对象
参考答案:C
19、设有定义:long x=-654321L;,则以下能够正确输出变量x值的语句是( )。
A.printf(“x=%1d\n”,x);
D.a='\';
参考答案:D
30、下面的程序运行时,如果输入18,18,则b的值为( )。
main()
{
int a,b;
scanf("%d,%x",&a,&b);
b+=a;
printf("%d",b);
}
A.42
B.36
C.输入有误,b无值
D.18
参考答案:A
A.scanf(“%3d%*3d%lf”,&a,&b,&x);
B.scanf(“%ld%lo%o”,&a,&b,&x);
C.scanf(“%o%f%lo”,&a,&b);
D.scanf(“%d%o%f”, &a,&b,&x);
参考答案:C
6、有输入语句:scanf(“a=%db=%dc=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为5,则正确的数据输入方式是( )。
A.a=1b=3c=5↙
B.1,3,5↙
C.135↙
D.a=1 b=3 c=5↙
参考答案:A
7、putchar ( )函数可以向终端输出一个( )。
A.整型变量表达式值
B.字符或字符型变量值
C.字符串
D.实型变量值
参考答案:B
8、getchar()函数的参数个数是( )。
A.1
B.2
C.3
D.0
参考答案:D
29、下面的程序:
main()
{
char a,b,c,d;
a='\';
b='\xbc';
c='\0xbc';
d='\0127';
printf("%c\n%c\n%c\n%c\n",a,b,c,d);
}
编译时出现错误,则该错误有可能是( )。
A.d='\0127';
B.b='\xbc';
C.c='\0xbc';
B.scanf("%3.2f%2.1f",&f1,&f2);
相关文档
最新文档