文档库 最新最全的文档下载
当前位置:文档库 › C语言五套模拟试题

C语言五套模拟试题

C语言五套模拟试题
C语言五套模拟试题

全国高等学校(安徽考区)计算机水平考试

2016模拟题(二级C语言)

第一套模拟

一、单项选择题

1:计算机最主要的工作特点是______。

A. 存储程序与程序控制

B. 高速度与高精度

C. 可靠性与可用性

D. 具有记忆能力

参考答案:A

2: 在计算机指令系统中,一条指令通常由_______组成。

A. 数据和字符

B. 操作码和操作数

C. 运算符和数据

D. 被运算数和结果

参考答案:B

3:运算器主要由_______组成。

A. 算术逻辑单元

B. 微处理器

C. 控制器

D. 存储器

参考答案:A

4: Windows操作系统是由______公司开发的。

A. 联想

B. 微软

C. 谷歌

D. 金山

参考答案:B

5:多媒体信息不包括_______。

A. 文字、图形

B. 音频、视频

C. 光驱、声卡

D. 影像、动画

参考答案:C

6:下列关于C语言程序的叙述中,不正确的是______。

A. C语言程序由一个或多个函数组成

B. C语言程序总是从第一个函数开始执行

C. C语言程序中必须含有main( )函数

D. C语言程序中的语句必须以分号结束

参考答案:B

7:下列变量定义中合法的是_____。

A. int _a=.e1;

B. double b=1+1e1.1;

C. long x=2.5;

D. float 2_and=1-e-3;

参考答案:C

8:下列可以正确表示字符常量的是______。

A. '\x41'

B. \008

C. a

D. "a"

参考答案:A

9:以下选项中可以作为变量名的是_______。

A. 2ab

B. double

C.

D. apple

参考答案:D

10:设有定义:int a=2,b=6;,则表达式a*b/5的值是______。

A. 2

B. 3

C. 2.4

D. 3.6

参考答案:A

11:下列运算符结合方式是自右向左的是______。

A. %

B. <

C. ++

D. &&

参考答案:C

12:设有int m,n=10;,则执行语句m=n++;后m、n的值分别为_______。

A. 10,10

B. 10,11

C. 11,10

D. 11,11

参考答案:B

13:设变量x,y,z均为int类型,则以下程序段的输出结果是______。

x=y=6;z=x,++y;printf("%d",z);

A. 9

B. 8

C. 7

D. 6

参考答案:D

14:设有int a=2,b=1,c=3,d=4;,则表达式a>b?a+b:c+d值为______。A. 1

B. 2

C. 3

D. 7

参考答案:C

15:若变量c为char类型,以下不能正确判断其为大写字母的表达式是______。

A. 'A'<=c<='Z'

B. c>='A'&&c<='Z'

C. (c+32)>= 'a'&&(c+32)<= 'z'

D. !(c<'A'||c>'Z')

参考答案:A

16:设有int x=3,y=4;,以下不合法的C语言语句是______。

A. x=y==5;

B. x=y%2.8;

C. x=y=5;

D. x+=x+2;

参考答案:B

17:设有定义int a; char c;,执行输入语句scanf("%d%c",&a,&c);时,若要求a和c得到的

值为10和'Y',正确的输入方式是_______。

A. 10,Y

B. 10.Y

C. 10Y

D. 10 Y

参考答案:C

18:以下程序段输出结果是______。

int x=023;printf("%d",x);

A. 19

B. 18

C. 23

D. 22

参考答案:A

19:以下程序段的输出结果是______。

int a=2,b=1,c=2;

if (a

if (b<0) c=0;

else c+=1;

printf("%d\n",c);

A. 0

B. 1

C. 2

D. 3

参考答案:C

20:以下关于switch语句和break语句的描述中,正确的是______。

A. 在switch语句中必须使用break语句

B. break语句中只能用于switch语句中

C. 在switch语句中,可根据需要用或不用break语句

D. switch语句中不能使用break语句

参考答案:C

21:以下程序段的输出是______。

int a=1,b=2,c=3,t;

while (b

{t=a;a=b;b=t;c--;}

printf("%d,%d,%d",a,b,c);

A. 1,2,3

B. 2,1,2

C. 1,2,1

D. 2,1,1

参考答案:C

22: for(表达式1 ; ;表达式3)可理解为______。

A. for(表达式1 ; 0 ; 表达式3)

B. for(表达式1 ; 1 ; 表达式3)

C. for(表达式1 ; 表达式1 ; 表达式3)

D. for(表达式1 ; 表达式3 ; 表达式3)

参考答案:B

23:执行语句for(i=1;i<6; i+=2);后,变量i的值是______。

A. 5

B. 6

C. 7

D. 8

参考答案:C

24:以下程序段的输出结果是_______。

int s=1,i;

for (i=1;i<=5;i++)s=s*i;

printf("%d\n",s);

A. 6

B. 120

C. 240

D. 2

参考答案:B

25:以下能正确定义和初始化一维数组a的选项是______。

A. int a[5]={0,1,2,3,4,5};

B. int a[]="01234";

C. int a[5]=('A','B','C');

D. int a[]={1,2,3,4,5};

参考答案:D

26:下面能正确对字符串s进行初始化操作的是______。

A. char s[5]={ 'C', 'H', 'I', 'N', 'A', '\0'};

B. char s[5]={ "CHINA"};

C. char s[ ]= "CHINA";

D. char s[5];s[0]='C'; s[1]='H'; s[2]='I'; s[3]='N'; s[4]='A'; s[5]='\0';

参考答案:C

27:若有int a[3];,则对a数组元素非法引用的是______。

A. a[3]

B. a[2]

C. a[1]

D. a[0]

参考答案:A

28:以下对二维数组a的定义,正确的是______。

A. int a[3][];

B. int a(3,4);

C. int a[1][4];

D. int a(3)(4);

参考答案:C

29:已知char str[6]={'a','b','\0','c','d','\0'}; ,则printf("%s",str)的输出结果是______。

A. a

B. ab

C. abc

D. abcd

参考答案:B

30:已知:char b[20];,若要从键盘输入字符串"Hello World!",则正确的输入语句是_________。

A. scanf("%c",b);

B. scanf("%s",b[20]);

C. gets(b);

D. gets(b[20]);

参考答案:C

31:设有定义:char s1[ ]= "abc",s2[ ]= "mnop";,则执行语句strcpy(s2,s1);printf("%s", s2);后,输出的结果是______。

A. mnop

B. abc

C. mnopabc

D. abcmnop

参考答案:B

32: 关于函数的说法正确的是_______。

A. 函数可以嵌套定义,但不可以嵌套调用

B. 函数不可以嵌套定义,但可以嵌套调用

C. 函数的定义和函数的调用均不可以嵌套

D. 函数的定义和函数的调用均可以嵌套

参考答案:B

33:函数的形式参数的作用域是______。

A. 本函数的全部范围

B. 本程序的全部范围

C. 本文件的全部范围

D. 从定义开始至本文件结束

参考答案:A

34:当调用函数时,实参是一个数组名,则向函数传送的是______。

A. 数组的长度

B. 数组的首地址

C. 数组每一个元素的地址

D. 数组每个元素中的值

参考答案:B

35:对于类型相同的指针变量,不能进行的运算是_______。

A. +

B. -

C. =

D. ==

参考答案:A

36:已知:int a,b=7,*p=&a;,则与a=b;等价的语句是_________。

A. a=*p;

B. *p=b;

C. a=&b;

D. a=**p;

参考答案:B

37:设有int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则p[5]的值是______。

A. 5

C. 7

D. 8

参考答案:B

38:若有#define MUL(x,y) x*y,则语句printf("s=%d", MUL(2,2+3));的输出结果是_______。

A. s=8

B. s=7

C. s=10

D. s=11

参考答案:B

39:下列程序段的输出结果是____________。

struct {int a,b,c;} s={1,2,3},*p;

p=&s;

s.a=s.b+s.c;

printf("%d\n",p->a);

A. 5

B. 4

D. 无结果

参考答案:A

40:以只读方式打开一个已存在的文本文件ab.txt,以下选项中正确的是______。

A. FILE *fp;fp=fopen("ab.txt","a");

B. FILE *fp;fp=fopen("ab.txt","w");

C. FILE *fp;fp=fopen("ab.txt","r");

D. FILE *fp;fp=fopen("ab.txt","rb+");

参考答案:C

二、程序改错题

题目1:

输出个位数为7的最小的10个素数,如7,17,37,47 ......等。

参考答案:

$1$:while(n<10)

$2$:if(i%j==0)

$3$:if(flag==0)

题目2:

删除字符串中的所有空格字符。

参考答案:

$1$:j++;

$2$:s[j]='\0';

$3$:printf("%s\n", s);

三、Windows操作题

请在考生文件夹中进行以下操作:

1.将文件夹monday下的文件group.mp3改名为star.mp3;

2.将文件夹tuesday下的文件think.txt移动到文件夹monday中;

3.将文件夹program下的子文件夹myfile删除;

4.在文件夹monday下新建一个文本文档book.txt;

5.将文件夹tuesday下的文件great.dat删除。

考生在完成题目要求时,应特别注意一个基本概念:考生文件夹,考生上机考试的全部数据均存储在这个文件夹中。考生不得随意

更改其中的内容,而且,有些题目要使用这个概念来完成。要完成上机考试的基本操作题,可以使用Windows提供的资源管理器、文件

夹窗口等。Windows上机考试的基本操作题主要包括以下内容:

1.文件或文件夹的创建

操作:新建文件夹可通过"Windows资源管理器"或"我的电脑",先双击要放置新文件夹的磁

盘或文件夹,然后利用以下两种方法来完成:

(1)利用"文件"菜单中的"新建"命令的"文件夹"选项,输入新文件夹名后按回车键;(2)在已打开文件夹中,单击鼠标右键,使用快捷菜单中的"新建"→"文件夹"命令,输入新文件夹名后按回车键。

新建文本文件可通过"Windows资源管理器"或"我的电脑",先双击要放置新文件的磁盘或文件夹,然后利用以下两种方法来完成:

(1)利用"文件"菜单中的"新建"命令的"文本文档"选项,输入新文件名后按回车键;(2)在已打开文件夹中,单击鼠标右键,使用快捷菜单中的"新建"→"文本文档"命令,输入新文件名后按回车键。

2.文件或文件夹的拷贝

操作:复制文件或文件夹有三个步骤:选择→复制→粘贴。复制文件或文件夹有以下四种方法:

(1)选择该文件,在"编辑"菜单中选择"复制"命令;

(2)选择该文件,用鼠标单击工具栏中的"复制"图标;

(3)选择该文件,在键盘上按Ctrl+C键;

(4)用鼠标右击欲复制的文件或文件夹,在弹出的快捷菜单中选择"复制"命令。

然后选择目的文件夹进行粘贴,粘贴文件或文件夹可由以下四种方法来实现:

(1)在"编辑"菜单中选择"粘贴"命令;

(2)用鼠标单击工具栏中的"粘贴"图标;

(3)选择该文件,在键盘上按Ctrl+V键;

(4)用鼠标右击欲粘贴的文件或文件夹,在弹出的快捷菜单中选择"粘贴"命令。

3.文件或文件夹的移动

操作:移动文件或文件夹有三个步骤:选择→剪切→粘贴。剪切文件或文件夹应先选择该文件或文件夹,然后有以下四种方法:

(1)在"编辑"菜单中选择"剪切"命令;

(2)用鼠标单击工具栏中的"剪切"图标;

(3)在键盘上按Ctrl+X键;

(4)用鼠标右击欲剪切的文件或文件夹,在弹出的快捷菜单中选择"剪切"命令。

然后选择目的文件夹进行粘贴,粘贴文件或文件夹可由以下四种方法来实现:

(1)在"编辑"菜单中选择"粘贴"命令;

(2)用鼠标单击工具栏中的"粘贴"图标;

(3)选择该文件,在键盘上按Ctrl+V键;

(4)用鼠标右击欲粘贴的文件或文件夹,在弹出的快捷菜单中选择"粘贴"命令。

4.文件或文件夹的更名

操作:在"Windows资源管理器"或"我的电脑"窗口中修改文件或文件夹的名称可以选择以下几种操作之一来实现:

(1)选择该文件,在"文件"菜单中选择"重命名"命令,然后键入新文件名或文件夹名,再按回车键;

(2)选择该文件按功能键F2,然后键入新文件名或文件夹名,再按回车键;

(3)用鼠标左键单击文件或文件夹名,然后键入新文件名或文件夹名,再按回车键;

(4)用鼠标右击欲重命名的文件或文件夹,在弹出的快捷菜单中选择"属性"命令,然后键入新文件名或文件夹名,再按回车键;

5.文件或文件夹的属性设置

操作:在"Windows资源管理器"或"我的电脑"窗口中都设置有"属性"命令,用户可通过该命令设置文件或文件夹的属性(只读、隐藏、存

档、系统),具体实现方法有以下两种:

(1)选择该文件,在"文件"菜单中选择"属性"命令,在弹出的对话框中单击相应属性前的复选框,再单击"确定"按钮即可;

(2)用鼠标右击欲设置属性的文件或文件夹,在弹出的快捷菜单中选择"属性"命令,然后在弹出的对话框中单击相应属性前的复选

框,再单击"确定"按钮即可。

6.文件或文件夹的删除

操作:先选择该文件或文件夹,然后再按以下方法之一删除:

(1)按键盘上的Del键;

(2)用鼠标右击欲删除的文件或文件夹,在弹出的快捷菜单中选择"删除"命令;

(3)在"文件"菜单中选择"删除"命令;

(4)如果考生使用Shift+Del键,则该文件或文件夹将被彻底从硬盘中删除。

四、综合应用题

题目1:

计算1~1000之间能被3或7整除的所有自然数的倒数之和。

c语言试卷第二套

以下叙述中正确的是(D)。 A.C语言中的函数不可以单独进行编译 B.C语言的源程序不必通过编译就可以直接运行 C.C源程序经编译形成的二进制代码可以直接运行 D.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 若有说明语句:char c='\72';则变量c(D)。 A.说明不合法,c的值不确定 B.包含2个字符 C.包含3个字符 D.包含1个字符 定义字符变量c1的值是'A',c2的值是'D'. 执行语句printf("%d,%d",c1,c2-2);后,输出结果是(A)。 A.65,66 B.65,68 C.A,68 D.A,B 若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是(D)。 A.A%2==1 B.A%2 C.!(A%2==0) D.!(A%2) 为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总是与(A)配对。 A.其之前最近的if B.其之后最近的if C.同一行上的if D.缩排位置相同的if 下面程序段运行的结果是(A). x=-1; do{ x=x*x; }while (!x); A.循环执行一次 B.有语法错误 C.死循环 D.循环执行两次 以下正确的描述是(A). A.只能在循环体内和switch语句内使用break语句 B.continue语句的作用是终止整个循环的执行 C.从多层嵌套的外层循环中退出时,只能使用goto语句

D.在循环体内使用break和continue语句的作用相同 以下不能正确定义二维数组的选项是(A)。 A.int a[2][]={{1,2},{3,4}}; B.int a[2][2]={{1},2,3}; C.int a[2][2]={{1},{2}}; D.int a[][2]={1,2,3,4}; char a[10];不能将字符串"abc"存储在数组中的是(B)。 A.int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; B.a="abc"; C.strcpy(a,"abc"); D.a[0]=0;strcat(a,"abc"); 在C语言中,引用数组元素时,其数组下标的数据类型允许是(B)。 A.整型常量 B.整型常量或整型表达式 C.整型表达式 D.任何类型的表达式 在定义全局变量和局部静态变量的同时赋值,变量的初始化在(C)时确定的. A.运行 B.编辑 C.编译 D.调试 以下不正确的说法是:C语言规定(C)。 A.实参可以是常量,变量或表达式 B.实参可以为任何类型 C.形参可以是常量,变量或表达式 D.形参应与其对应的实参类型一致 C语言程序中必须有的函数是(B)。 A.#include "stdio.h" B.main C.printf D.scanf 在"文件包含"的预处理中,被包含的文件应是(A). A.文本文件 B.可执行文件 C.目标文件 D.二进制文件 若有说明:int *p,m=5,n;以下正确的程序段是(D)。 A.scanf("%d",&n);*p=n; B.p=&n;scanf("%d",*p)

语言试卷第四套

若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:(D). 整型变量x=1,y=3,经下列计算后,x的值不等于6的是(D)。 =y*4/2 =9-(--y)-(--y) =(x=1+2,x*2) =y<26:5 以下程序的输出结果为(A)。 main() {int i=010,j=10; printf("%d,%d\n",++i,j--); } ,10 ,9 ,9 ,10 如下说法不正确的是(D). A.若b为假a为真,则 a||b为真 B.若b为真a为假,则 a||b为真 C.若b为真a为真,则 b&&!a为假 D.若b为假,则!b+1为假 下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0 A.(a*2-c)||d *2>8+2 =10) ; { i=1;s=1;s=s*i;i++;}while(i<=10) ; =1;s=1;do {s=s*i; i++; }while(i<=10) ; =1;s=1; do { s=s*i; i++;}while(i>=10) ; 以下正确的描述是(A). 语句用来终止本次循环,继续下一次循环。 语句中不能出现continue语句 C.在循环中break语句不能独立出现 语句只能用于退出多层循环

下面各语句中,能正确进行赋字符串操作的语句是(B). s1[5][ ]={"ABCDE"}; s2[6]={'A','B','C','D','E'}; st[ ][ ]={"ABCDE"}; s[5]={'A','B','C','D','E'}; 下述对C语言字符数组的描述中,错误的是(C). A.不可以用关系运算符对字符数组中的字符串进行比较. B.字符数组中的字符串可以整体输入、输出. C.可以通过赋值运算符"="对字符数组整体赋值. D.字符数组中可以存放字符串. 若有说明 int a[3][4];则对a数组元素的正确引用是(C)。[1,3] [2][4] [1+1][0] (2)(1) 程序运行结束后,屏幕上输出值为(B). static int x=10; f( ) { x++; } main( ) { int x=3; f( ); x- -; printf("%d",x); } C语言规定,函数返回值的类型是由(A)。 A.在定义该函数时所指定的函数类型所决定 语句中的表达式类型所决定 C.调用该函数时系统临时决定 D.调用该函数时的主调函数类型所决定 若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数(B)。 A.没有返回值 B.返回一个不确定的值 C.返回若干个系统默认值 D.能返回一个用户所希望的值

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

上海理工大学 C语言 第二套试题

注意: 1. 本练习时间为1小时,如有多余时间请完成实验5 2. 请单号的机器完成A 卷测试题,双号机器完成B 卷测试题 3. 以自己学号为文件夹名,并上传1.cpp,2.cpp,3.cpp 3个源代码文件 A 卷测试题目(机器号为单号学生完成) 1. 输入两个值分别为a,b,请输出ab b 42 的值, 程序保存为1.cpp. 2. 编写程序,判断输入的两个小数是否相互等, 程序保存为2.cpp. 3.编写程序, [问题的描述] 百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现有100元钱要买100只鸡,列出所有可能的购鸡方案。 程序保存为3.cpp. B 卷测试题目(机器号为双号学生完成) 1. 编写程序 [问题的描述] 有2个变量,分别存入2个不同的整数,有人试图将这2个变量中的值互换。 [案例] 原始状态为:x=5 y=6 互换后的状态为:y=6 x=5 程序只允许定义两个变量,程序保存为1.cpp.

2.编写程序,连续输入10个值,请输出输入值的最大值和最小值, 程序保存为2.cpp. 3.[问题的描述] 打印出下图所示的杨辉三角形 两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就是1,2,1这就是杨辉三角的其中一行,立方,四次方,运算的结果看看各项的系数,这就是杨辉三角,也叫贾宪三角,2项式乘方展开式的系数规律。如图,在贾宪三角中,第3行的第三个数恰好对应着两数和的平方公式依次类推,杨辉三角是一个由数字排列成的三角形数表,一般形式如下图所示。 [案例] 输出10行的图

C语言》课程期末考试-第四套

第四套期末考试题 第一部分选择题 单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括内 1. 在计算机上可以直接运行的程序是_____________。 A. 高级语言程序 B.汇编语言程序 C.机器语言程序 D. C语言程序 2. 不属于C语言的是__________。 A. for B. goto C. if D. loop 3. 正确的C语言自定义标识符是__________。 A. num(10) B. file_bak C. continue D. class+2 4. 字符串”m\x43\\\np\102q”的长度是__________。 A. 7 B. 9 C. 15 D. 16 5. 设 int x=8, y, z; 执行y=z=x++; x=y==z后,变量x的值是__________。 A. 0 B. 1 C. 8 D. 9 6. 对于输入语句scanf(“%f,%f”, &a, &b); 要使变量a、b的值分别为1.78和2.48,则正确的输入是__________。 A. 1.78, 2.48 后跟回车 B. 1.78 2.48 后跟回车 C. 1.782.48 后跟回车 D. 1.78;2.48 后跟回车 7. 设int a=8, b=7, c=6, x=1; 执行语句 if(a>6) if(b>7) if(c>8) x=2; else x=3; 后x的值是__________。 A. 0 B. 1 C. 2 D. 3 8. 执行下列程序段 x=9; while(x>7) { printf(“*”); x--; } 后输出的结果是__________。 A. **** B. *** C. ** D. * 9. 定义一个具有10个元素的整数型数组,应当使用语句__________。 A. int a[10]; B. int a[2,5]; C. int a[]; D. int *a[10]; 10. 设char str1[10]=”ABCDE”, str2[10]=”xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是__________。 A. 9 B. 8 C. 5 D. 3 11. 设int x[]={1,3,5,7,9,11,13}, *p=x; 则不能正确引用数组元素的表达式是__________。 A. *(p--) B. *(--p) C. *(p++) D. *(++p) 12. 设int x[]={1,2,3,4}, y, *p=&x[1]; 则执行语句 y=(*--p)++; 后变量y的值为__________。 A. 1 B. 2 C. 3 D.4 13. 函数调用时,下列说法中不正确的是__________。 A. 若用值传递方式,则形式参数不予分配内存 B. 实际参数和形式参数可以同名 C. 主调函数和被调用函数可以不在同一个文件中

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

C语言程序设计模拟试题2(附答案)new

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

C语言试卷第2套 含答案

第二套试题 一、判断题 第1题:C语言允许直接访问物理地址。参考答案:对第2题:在标准C语言中,共用体变量中的各成员的首地址是不一样的。参考答案:错第3题:全局变量的作用域一定比局部变量的作用域范围大参考答案:错 第4题:C语言的源程序不必通过编译就可以直接运行参考答案:错 第5题:指针变量与变量的指针都与地址有关参考答案:对 第6题:C语言的函数可以嵌套定义参考答案:错 第7题:局部变量的作用域是当前文件。参考答案:错 第8题:在标准C语言中,宏替换是程序运行时完成的。参考答案:错 第9题:在标准C中,“=”是判断两个数是否相等。参考答案:错 第10题:C语言编译时不检查语法参考答案:错 二、选择题(请选择正确的选项) 第1题:以下程序的输出结果是 main( ) { int n=4; while(n--) printf("%d ",--n); } 参考答案:A A、2 0 B、3 1 C、3 2 1 D、2 1 0 第2题:数组定义为int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。 参考答案:B A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3] 第3题:字符串指针变量中存入的是 参考答案:A A、字符串的首地址 B、字符串 C、第一个字符 D、字符串变量 第4题:下列表达式的值为0的是() 参考答案:C A、3﹪5 B、3/5.0 C、3/5 D、3<5 第5题:C语言中以追加方式打开一个文件应选择_______________参数参考答案:D A、“r” B、“w” C、“rb” D、“a” 第6题:C语言中while和do-while循环的主要区别是 参考答案:A A、do-while循环体至少无条件执行一次 B、while的循环控制条件比do-while循环控制条件严格 C、do-while循环允许从外部转到循环体内 D、do-while循环体不能是复合语句

c语言程序设计(第四版)考试题

C程序设计(第四版)期末考试题 本卷共有4道大题: 一、单项选择题(20道小题,共20分) 1、以下对C语言函数的有关描述中,正确的是( )(1分) A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中 2、strcpy库函数用于复制一个字符串。若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分) A、strcpy(str2,str1) B、strcpy(str3,str1) C、strcpy(str4,str1) D、strcpy(str5,str1) 3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分) A、strp B、str[k] C、strp[k] D、*strp 4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分) A、typedef v1 int; B、typedef v2=int; C、typedef v1 int v3; D、typedef v4: int; 5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)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 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

c语言模拟题目第十七套

第十七套 设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为()。 A、0 B、144 C、132 D、12 【参考答案】错误 A 【学生答案】 [未答此题] 设变量定义为"int a, b;",执行下列语句时,输入( ),则a和b的值都是10. scanf("a=%d, b=%d",&a, &b); A、a=10, b=10 B、a=10 b=10 C、10, 10 D、10 10 【参考答案】错误 A 【学生答案】 [未答此题] 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",a,b); }该程序的输出结果是( ) A、a=1,b=1 B、a=1,b=0 C、a=2,b=2 D、a=2,b=1 【参考答案】错误 D 【学生答案】 [未答此题] 执行下列语句后的输出为()。

int j=-1; if(j<=1) printf("****\n"); else printf("%%%%\n"); A、%%%% B、**** C、有错,执行不正确 D、%%%%c 【参考答案】错误 B 【学生答案】 [未答此题] 以下正确的描述是( ). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 【参考答案】错误 A 【学生答案】 [未答此题] 设有如下程序段: int k=10; while(k==0) k--; 则下述说明中正确的是( ). A、循环体一次也不执行 B、循环体执行一次 C、死循环 D、循环体执行10次 【参考答案】错误 A 【学生答案】 [未答此题] 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 A、将5个初值依次赋给a[6]至a[10] B、将5个初值依次赋给a[0]至a[4] C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[1]至a[5] 【参考答案】错误 B

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

c语言模拟题目第二十套

第二十套 下列程序段的输出结果为()。 float x=213.82631; printf("%3d",(int)x); A、213.82 B、213.83 C、213 D、3.8 【参考答案】错误 C 【学生答案】 [未答此题] a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。 A、a/b*b+a%b==a B、a/b*b==a C、a*b/a*b==1 D、a/b*b/a==1 【参考答案】错误 A 【学生答案】 [未答此题] int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为()。 A、3 B、2 C、1 D、不一定 【参考答案】错误 C 【学生答案】 [未答此题] C语言的switch语句中case后( )。 A、可为任何量或表达式 B、可为常量或表达式或有确定值的变量及表达式 C、只能为常量或常量表达式 D、只能为常量 【参考答案】错误 C 【学生答案】 [未答此题]

设j和k都是int类型,则下面的for循环语句( )。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A、最多执行9次 B、是无限循环 C、循环体一次也不执行 D、最多执行10次 【参考答案】错误 D 【学生答案】 [未答此题] 以下程序中,while循环的循环次数是( ). main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } } A、1 B、6 C、死循环,不能确定次数 D、4 【参考答案】错误 C 【学生答案】 [未答此题] 以下不能对二维数组a进行正确初始化的语句是()。 A、int a[2][3]={{1,2},{3,4},{5,6}}; B、int a[][3]={{1,2},{0}}; C、int a[2][3]={0}; D、int a[][3]={1,2,3,4,5,6}; 【参考答案】错误 A 【学生答案】 [未答此题] 下面函数调用语句中,fun含有实参的个数为( ). fun((x,y),(x+y,z,x/y));

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

C语言模拟题

一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b

相关文档
相关文档 最新文档