当前位置:文档之家› c语言历年真题及答案

c语言历年真题及答案

c语言历年真题及答案
c语言历年真题及答案

c语言历年真题及答案

【篇一:c语言试题及答案】

t>1. 单项选择题

(1) c 语言是在 b 语言的基础上产生的。

a. a

b. b

c. d

d. e

(2) 在 c 语言中,每个语句必须以 d 结束。

a. 回车符

b. 冒号

c. 逗号

d. 分号

(3) 标识符和关键字间,要用c 隔开。

a. 回车符

b. 冒号

c. 空格

d. 分号

(4) 用 c 语言编写的源文件经过编译,若没有产生编译错误,则系统将( b )。

a. 生成可执行目标文件

b. 生成目标文件

c. 输出运行结果

d.自动保存源文件

(5) 下列说法中正确的是( b )。

a. 由于 c 源程序是高级语言程序,因此一定要在 tc 软件中输入

b. 由 c 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入

c. 由于c 程序是高级语言程序,因此输入后即可执行

d. 由于 c 程序是高级语言程序,因此它由命令组成

(6) 下列说法中正确的是( a )。

a. c 语言程序由主函数和 0 个或多个函数组成

b. c 语言程序由主程序和子程序组成

c. c 语言程序由子程序组成

d. c 语言程序由过程组成

(7) 下列说法中错误的是( d )。

a. 主函数可以分为两个部分:主函数说明部分和主函数体

b. 主函数可以调用任何非主函数的其他函数

c. 任何非主函数可以调用其他任何非主函数

d. 程序可以从任何非主函数开始执行

2. 填空题

(1) c 语言只有 32个关键字和 9 种控制语句。

(2) c 语言是一种“ 中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行c 语言程序。

(4) 在 c 语言程序中允许出现的字符集是 ascii码字符集。

(5) c 语言的程序中有特殊含义的英语单词称为保留字。

(6) c 语言标识符的长度是前8位有效。

(7) c 语言中,标识符的定义规则是以字母或下划线为开头。

(8) c 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

第2章数据类型运算符和表达式习题

1. 单项选择题

(1) 以下选项中,正确的 c 语言整型常量是d。

a. 32l

b. 510000

c. -1.00

d. 567

(2) 以下选项中, d是不正确的 c 语言字符型常量。

1

a. a

b. \x41

c. \101

d. a

(3) 在 c 语言中,字符型数据在计算机内存中,以字符的 c形式存储。

a. 原码

b. 反码

c. ascii 码

d. bcd码

(4) 字符串的结束标志是c。

a. 0b. 0 c. \0 d. 0

(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 b 。

a. 算术运算、赋值运算、关系运算

b. 算术运算、关系运算、赋值运算

c. 关系运算、赋值运算、算术运算

d. 关系运算、算术运算、赋值运算

(6) 逻辑运算符中,运算优先级按从高到低依次为d。

a. ,!,||

b. ||,,!

c. ,||,!

d. !,,||

(7) 表达式!x||a==b 等效于 d 。

a. !((x||a)==b)

b. !(x||y)==b

c. !(x||(a==b))

d. (!x)||(a==b)

(8) 设整型变量 m,n,a,b,c,d 均为1,执行 (m=ab)(n=cd)后, m,n 的值是 a 。

a. 0,0

b. 0,1

c. 1,0

d. 1,1

(9) int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 的值依次为

a 。

a. 2,3

b. 2,0

c. 3,0

d. 3,2

(10) 设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是b。

a. 3

b. 0

c. 9

d. -12

(11) 在以下一组运算符中,优先级最低的运算符是 d。

a. *

b. !=

c. +

d. =

(12) 设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是 b 。

a. 6

b. 12

c. 15

d. 表达式出错

(13) 若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是c。

a. 1

b. 2

c. 2.0

d. 2.5

(14) sizeof (double)的结果值是a。

a. 8

b. 4

c. 2

d. 出错

(15) 设a=1,b=2,c=3,d=4,则表达式:ab? a : cd? a : d的结果为 d 。

a. 4

b. 3

c. 2

d. 1

(16) 设a 为整型变量,不能正确表达数学关系:10a15的 c 语言表达式是 a 。

a. 10a15

b. a= =11|| a= =12 || a= =13 || a= =14

c. a10 a15

d. !(a=10) !(a=15)

(17) 设 f是实型变量,下列表达式中不是逗号表达式的是 d 。

a. f= 3.2, 1.0

b. f0, f10

c. f=2.0, f0

d. f=(3.2, 1.0)

(18) 设ch是 char型变量,其值为 a,则下面表达式的值是 b 。 ch=(ch=a ch=z)? (ch+32):ch

a. a

b. a

c. z

d. z

(19) 以下运算符中,结合性与其他运算符不同的是a。

a. ++

b. %

c. /

d. +

(20) 以下用户标识符中,合法的是b 。

a. int

b. nit

c. 123

d. a+b

(21) c 语言中,要求运算对象只能为整数的运算符是%。

a. %

b. /

c.

d. *

(22) pc 机中,\n在内存占用的字节数是 a 。

a. 1

b. 2

c. 3

d. 4

2

(23) 字符串abc在内存占用的字节数是b。

a. 3

b. 4

c. 6

d. 8

(24) 要为字符型变量 a赋初值,下列语句中哪一个是正确的 b 。

a. char a=3;

b. char a=’3’;

c. char a=%;

d. char a=*;

(25)下列不正确的转义字符是 c 。

a. \\

b. \

c. 074

d. \0

2. 填空题

(1) c 语言中的逻辑值“真”是用非0 表示的,逻辑值“假”是用 0表示的。

(2) 符号常量的定义方法是 #define n 10 。

(3) 无符号基本整型的数据类型符为 unsigned int,双精度实型数据类型符为double ,字符型数据类型符为 char 。

(4) 设 c=w,a=1,b=2,d=-5, 则表达式 x+1c, y!=c+2, -a-5*b=d+1, b==a=2的值分别

为 1 、 0 、1、表达式错误。

(5) 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为2.5 。

(6) 判断变量 a、b 的值均不为 0 的逻辑表达式为 (a!=0)(b!=0) 。

(7) 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。

(8) 求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3 。

(9) 数学式a/(b*c)的 c语言表达式a/(b*c)。

第3章顺序结构程序设计习题

1. 选择题

(1) printf(f=%3.2f%%,3.478);的输出结果是a。

a. f=3.48%

b. f=3.5%

c. f=3.48% %

d. f=347.8%

(2) printf(%c,%d,a, a);的输出结果是a 。

a. a,97

b. a 97

c. 97,a

d. 97 a

(3) scanf(%c,a);若要给变量输入大写字母 a,则以下正确的输入是 b。

a. a cr

b. a cr \

c. a cr

d. 以上都不对

(4) 若一个 int 类型的数据占 2 字节,则程序段:int x=-

1;printf(%u,%d,x,x);的输出结果是 a。

a. 65535, -1

b. -1,65535

c. 32767, 32768

d. 32768,32767

包含在头文件b

中。

a. math.h

b. stdio.h

c. stbio.h

d. stdlib.h

(6) 复合语句是用c括起来的语句组。

a. ( )

b. [ ]

c. { }

d.

(7) 下列格式符中,哪一个可以用于以八进制形式输出整数c。

a. %d

b. %8d

c. %o

d. %ld

(8) 下列格式符中,哪一个可以用于以十六进制形式输出整数b。

a. %16d

b. %8x

c. %d16

d. %d

(9) a 是int类型变量,c是字符变量,下列输入语句中哪一个是错

误的 b 。

a. scanf(%d,%c,a,c);

b. scanf(%d%c,a,c);

c. scanf(%d%c,a,c);

d. scanf(d=%d,c=%c,a,c);

(10) 要使double x; long a;的数据能正确的输出,输出语句应是 d。

a. printf(%d, %f,a, x);

b. printf(%d, %1f,a, x);

3

c. scanf(%1d, %1f,a, x);

d. printf(%1d, %lf,a, x);

2. 程序改错题(以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正)

(1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。

#include stdio.h

mian() //main()

{ char c //char c;

getchar(c);//c = getchar();

putchar(\007) ; /*鸣笛*/

c=putchar(); //putchar(c);

//}

(2) 以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。

main //main()

{

int a,b,s,l; //double a,b,s,l;

scanf(%d,%d,a,b); //scanf(%lf,%lf,a,b);

s=a*b;

l=a+b; //l=(a+b)*2;

printf(l=%f,s=%f\n,l); //printf(l=%lf,s=%lf\n,l,s);

}

3. 写出程序运行结果

(1)

main()

{

int a,b;

scanf(%2d%*2s%2d,a,b);

printf(%d\n,a+b);

}

运行时输入:12345678 //输出:68

(2)

main()

{

int a=3,b=5,x,y;

x=a+1,b+6;

y=(a+1,b+6);

printf(x=%d\ny=%d\n,x,y);

}

输出:x=4

y=11

第4章选择结构程序设计习题

1. 单项选择题

(1) 选择结构程序设计的特点是___b____。

a. 自上向下逐个执行

b. 根据判断条件,选择其中一个分支执行

4

c. 反复执行某些程序代码

d. 以上都是

(2) 假定所有变量均已正确定义,下列程序段运行后x 的值是__b_。 a=b=c=0,x=35;

if(!a) x--; else if(b); if(c) x=3; else x=4;

a. 34

b. 4

c. 35

d. 3

(3) 下面的程序片段所表示的数学函数关系是_a____。

if(x0) y= -1;

else if(x0) y=1;

else y=0;

(4) 下列各语句序列中,能够且仅输出整型变量a、b 中最大值的

是( c )。

a. if(ab) printf(%d\n,a); printf(%d\n,b);

b. printf(%d\n,b); if(ab) printf(%d\n,a);

c. if(ab) printf(%d\n,a); else printf(%d\n,b);

d. if(ab) printf(%d\n,a); printf(%d\n,b);

(5) 以下程序段的输出结果是a

int x=5;

if(x0) y=1;

else if(x==0) y=0;

else y= 1;

printf(%d,y);

a. 1

b. 5

c. 0

d. 2

(6) 程序段int x=5,y=8,max; max=(xy)?x:y; printf(%d,max);的输

出结果是b。

a. 5

b. 8

c. 3

d. 13

(7) 程序段 int x=3,a=1;switch(x) {case 4: a++;case 3: a++;case 2: a++;case 1: a++;} printf (%d,a);的输出结果是d。

a. 1

b. 2

c. 3

d. 4

(8) 下列语句应将小写字母转换为大写字母,其中正确的是( b )。

a.if(ch=ach=z) ch=ch-32;

b.if(ch=ach=z)ch=ch-32;

c.ch=(ch=ach=z)?ch-32:’’;

d.ch=(chachz)?c h-32:ch;

2. 阅读程序,写出运行结果

(1) printf(%d, %d, %d\n, a, b, c) ; void main () }

{输出:10,4, 3

int a=10, b=4, c=3; (2)

if(ab) a=b ; void main ( )

if(ac) a=c ; {

5

【篇二:c语言考试题及答案】

见解,希望对大家有所帮助

c语言考试题

一、单项选择题(每题2分,共40分)

1、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(b)

a、有零个或多个输入

b、有零个或多个输出

c、有穷性

d、可行性算法5大特征:确定性,能行性,输入,输出,有穷性/有限性

2、c语言中最简单的数据类型包括(b)

a、整型、实型、逻辑型

b、整型、实型、字符型

c、整型、字符型、逻辑型

d、整型、实型、逻辑型、字符型

3、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(d)

a、 6.500000

b、 6b/b=1

c、 5.500000

d、 6.000000 a+b=6.5

由于int取整后为6 原为double,所以为6.000000

4、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(b)

a、 input x、y、z;

b、 scanf(%d%d%d,x,y,z);

c、 scanf(%d%d%d,x,y,z);

d、 read(%d%d%d,x,y,z);

scanf(“”,)后面要加位址符input()

5、设 int x=1, y=1; 表达式(!x||y--)的值是(b)。

a、0

b、1

c、2

d、-1!x即!1=0;y--=y-1=0;0或0=1

6、对两个字符数组a和b进行初始化char a[]=abcdef;char

b[ ]={a,b,c,d,e,f}; 则以下叙述正确的是(d)。

a、a与b数组完全相同

b、a与b长度相同

c、a和b中都存放字符串

d、a数组比b数组长度长

7、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与(b)配对。

a、缩排位置相同的if

b、其之前最近的if

c、其之后最近的if

d、同一行上的if

8、下面不正确的字符串常量是(a)

a、 abc

b、 1212

c、 0

d、正确形式a“abc”

9、以下错误的if语句是(c)。

a、 if(xy) z=x;

b、 if(x= =y) z=0;

c、 if(x!=y) printf(%d,x) else printf(%d,y); 缺少位址符

d、 if(xy) { x++;y--;}

10、若有说明:int a[3][4];则对a数组元素的非法引用是( d)。

a、a[0][2*1]

b、a[1][3]

c、a[4-2][0]

d、a[0][4]

数组中[里面数不能超过或等于最大] 如d、a[0][4],其中4已经等于或超出

11、程序char c[5]={‘a’,’b’,’\0’,’c’c,’\0’}; printf(“%s”,c);}的运行结果是( d)。

a、ab

b、ab

c、ab c

d、ab

\0表示字符串结束符

12、一个c程序的执行是从( a)。

a、本程序的main函数开始,到main函数结束

b、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

c、本程序的main函数开始,到本程序文件的最后一个函数结束

d、本程序文件的第一个函数开始,到本程序main函数结束

调用函数可能在最后

13、若变量已正确定义,以下非法的表达式是(b)%所求的模必须为整数 %int()

a、a/=b+c

b、a%(4.0)

c、a=1/2*(x=y=20,x*3)

d、a=b=c

14、判断字符串a是否大于b,应当使用( d)。

a、if (ab)

b、if (strcmp(a,b))

c、if (strcmp(b,a)0)

d、if (strcmp(a,b)0) stract(字符数组1,字符数组2)串连函数

strcpy/strncpy(字符数组1,字符数组2)复制函数

strcmp(字符串1,字符串2)字符串比较函数

strlen(字符数组)测字符数组函数

15、以下关于运算符优先顺序的描述中正确的是(c)。

a、关系运算符算术运算符赋值运算符逻辑与运算符

b、逻辑与运算符关系运算符算术运算符赋值运算符

c、赋值运算符逻辑与运算符关系运算符算术运算符

d、算术运算符关系运算符赋值运算符逻辑与运算符

16、使用语句scanf(“a=%f,b=%d”,a,b);输入数据时,正确的数据输入是:(a)

a、a=2.2,b=3

b、a=2.2 b=3

c、2.2 3

d、2.2,3

17、表示关系12=x=y的c语言表达式为:(b)

a、(12=x)(x=y)

b、(12=x)(x=y)

c、(12=x)|(x=y)

d、(12=x)||(x=y) 与,且的意思;||或的意思

18、语句for(a=0,b=0;b!=100a5;a++)scanf(“%d”,b); scanf最多可执行次数为:(c)

a、4

b、6

c、5

d、1

循环函数,按照for(里面的函数去推算)

19、设有如下定义:struct jan{int a;float b;}c2,*p;若有p=c2;则对c2中的成员a的正确引用是:(b)

a、(*p).c2.a

b、(*p).a

c、p-c2.a

d、p.c2.a

struct是关键字--结构体的标识符

20、下列程序的输出结果是(c)。

main( )

{ int a=7,b=5;

printf(%d\n,b=b/a); 5/7=0.xxxx 取整后为0

}

a 、5 b、 1 c、 0 d、不确定值

二、填空题(每题2分,共30分)

1、一个c源程序中至少应包含一个main 函数。

2、a是整型变量,则执行表达式a=25/3%3后a的值为。 2/和%为同阶,从左往右算

3、c语言中的数组必须先定义 ,然后使用。

4、如果需要从被调用函数返回一个函数值,被调用函数必须包含return语句。

5、下面程序的运行结果是。

#includestdio.h

main()

{ int i,x,y;

i=x=y=0;

do {++i;

if(i%2!=0){x=x+i;i++;}

y=y+i++;

} while (i=7);

printf(x=%d,y=%d\n,x,y);

}

运行结果是: x=1,y=20

6、引用c语言标准库函数,一般要用文件包含预处理命令将其头

文件包含进来。

7、在c语言程序中,符号常量的定义要使用宏定义预处理命令。

8、逻辑运算符!是自右至左结合性。

9、在一个c源程序中,注释部分二侧的分界符为。 /*和*/ 注释符

10、c语言标识符由字母、数字和下划线来构造。

11、若int x=5;while(x0)printf(“%d”,x--);的循环执行次数为

5 。

12、若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++则b和y 的值分别是1 、20。

13、c程序设计的三种基本结构是顺序结构、选择结构、循环结构。

14、数组是表示类型相同的数据,而结构体则是若干类型不同数据项的集合。

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

三、判断题(每题1分共10分)

1、c语言程序总是从main()函数开始执行。( t )

2、执行程序段int a=-1,b=4,k;k=(++a0)!(b--

=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是004。( t )

004为8进制数,如果是0101010为2进制数,0xff类型为16进

制数

3、c语言程序由函数组成,它的主函数必须在其它函数之前,函数内可以嵌套定义函数。( f )调用函数放在哪都可以

4、用c语言实现的算法可以没有输出但必须要有输入。( f )

算法5大特征:确定性,能行性,输入,输出,有穷性/有限性

缺少一不可

5、c语言本身有输入输出语句。( f )

6、若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有7个元素。(F)二维数组,15个元素,缺少的元素用0补充,如第1行为 2 2 0 0 0

7、int a=24; printf(%o , a );输出结果是30。( t )

/o表示转换进制 24转换8进制

8、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是整形。( t )默认整型

9、在c语言中,字符串常量是用双引号括起来的一串字符。( t )字符串用“” 单个字符‘’

10、若有int a[5],*p=a;则p+2表示第2个元素的地址。( f ) *p=a表示取字符数组首个元素,p+2是取字数数组第3个元素地址

四、编程题(每题5分,共20分)

1、计算并输出200-400之间不能被3整除的整数的和

#includestdio.h

void main()

{int i,sum=0;

for(i=200;i=400;i++)

if(i%3!=0)

sum=sum+i;

printf(%d\n,sum);

}

2、输入5个数,求和并输出。要求编写求和的函数。

#includestdio.h

void main()

{

int b(int x[],int n);

int sum=0;

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

sum=b(a,5);

printf(sum=%d\n,sum);

}

int b(int x[],int n)

{

int i,sum=0;

for(i=0;i5;i++)

sum=sum+x[i];

return sum;

}

3、输入3个学生4门课的成绩{(60,70,65,75),

(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数

#includestdio.h

void main()

{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};

int i,j;

float average,sum=0.0;

printf(三个学生的总分和平均成绩依次为:\n);

for(i=0;i3;i++)

{sum=0.0;

for(j=0;j4;j++)

sum=sum+a[i][j];

average=sum/4;

printf(%.2f,%.2f\n,sum,average);

}

}

4、起泡法(选择法)对十个数排序

#includestdio.h

void main()

{

int i,j,t;

int a[10];

printf(请输入10个数:\n);

} for(i=0;i10;i++) scanf(%d,a[i]); for(j=0;j9;j++) for(i=0;i9-

j;i++)if(a[i]a[i+1]){ t=a[i]; a[i]=a[i+1]; a[i+1]=t;}for(i=0;i10;i++) printf(%d ,a[i]);printf(\n);

【篇三:c语言试题及答案】

题(每小题2分,共10分)

(下在各小题,分别有一个或多个正确答案,请将所有正确答案的

编号,填写在该小题题干后的括号内。错选或漏选均不得分)。

1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的

有( a,c,d,e )

a、*(a+1)为元素6的地址

这里a+1=a[1]的地址;*(a+1)的值是6,故a正确。

b、*(a[1]+1)的值为2

为8,故b不正确

c、**(a+1)+2的值为8

这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是

a[1][0]. **(a+1)为6,加2得8,故c正确;

d、a[0]与a相同

因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故d正确。 e、a[1][2]的值为10

它是指第二行的第三个元素,为10,正确

2、对函数的正确使用方法描述( a,c,d )。

a、用数组做函数参数时,必须在主调函数和被调函数中分别定义数

b、实参数组元素和形参数组元素类型可以不一致

c、形参数组长度可以不指定

d、形参数组长度可以大于实参数组长

度 e、数组名做参数属于值传递

3、对静态变量的正确描述( a,b,d,e )

a、静态局部变量在静态存储区内分配单元()

b、静态外部变量可以赋初值,也可以不赋初值

c、静态外部变量的作用与外部变量相同

d、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。

e、静态局部变量只赋一次初值

4、下列描述正确的是( a ,c)。

a、由main 函数及其参数argc和* argv[]可以实现命令行方式

b、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到

文件中 //先写缓冲区数据到文件中,再释放文件指针

c、字符数组并不要求它的最后一个字符是‘\0’

//是的,以字符指针指向的字符串才要求,因为只有这样,才能知道

字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字

符数组的结尾。

d、‘a’和“a”都是字符串常量

e、若char*s=“\ta\017bc”;则指针变量s指向的字符串所占的字节数是7

5、在缓冲文件系统中用于读写的函数有( a,b,d )

a、putchar ()

b、fread()

c、rewind ()

d、purw()

e、fseek()

二、程序阅读,并给出运行结果(共10分,每题5分)。

(1)main()

{ unsigned a,b,x

int n;

a=0x763 输出结果:

n=6;

b=a<<(12-n);

x=(a>>n-2)^b; //+,-,的优先级比,高。

printf(“\nb=%x,\nx=%x”,b,x);

在用2个字节表示整数的系统中

结果为

d8c0

d8b6

在用4个字节表示整数的系统中

结果为

1d8c0

1d8b6

故以上两种结果都正确。

(2) #include 〈stdin.h〉

struct m {int x;

int *y;

}*p;

int a [4]={12,33,-40,100};

struct m b [4]={10,a[2],9,a[3],8,a[0],7,a[1]}

main()

p=b; 输出结果:

printf(“%d\n”,++p->x); //-的优先级高于++,因此等于是++(p-x),为11printf(“%d\n”,(++p)->x); //p后移一个元素,其x值为9; printf(“%d\n”,++(*p->y));

//-的优先级高于*, 此时p已指向b[1],故*(p-y)为a[3]为100.自加后为101; }

故输出结果为:

11

9

101

三、程序设计(共10分)

设在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符串按依序交叉的方式合并为一个字符串(例如“aaaaa”与“bbb”的合并结果为“abababaa”,而“bbb”与“aaaaa”的合作结果为“ bababaa”,)并将结果存入文件a.txt中。

【答案】

写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。 #includestdio.h

main()

{

file *fp,*fq,*fr;

char ch;

if((fp=fopen(a.txt,r+))==null)

{ printf(cannot open file a.txt);

exit(0);

}

if((fq=fopen(b.txt,r))==null)

{ printf(cannot open file b.txt);

exit(0);

}

fr=fopen(c.txt,w+);

while(!feof(fp))

{

ch=fgetc(fp);

fputc(ch,fr);

if(!feof(fq))

{

ch=fgetc(fq);

fputc(ch,fr);

}

}

while(!feof(fq))

{

ch=fgetc(fq);

fputc(ch,fr);

}

rewind(fp); rewind(fr);

while(!feof(fr))

{

ch=fgetc(fr);

fputc(ch,fp);

}

fclose(fp); fclose(fq); fclose(fr);

}

1.2 四川大学2001年攻读硕士学位研究生入学考试试题及答案

1.2.1第2001年――c语言程序设计题目

一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题1分,共

计6分)

1、‘\t’表示什么?

①字符串常数②标识符③变量④字符常量

答案:④

2、对宏定义不正确的描述是哪一个?

①在进行宏定义时,可以引用已经定义的宏名,可以层层置换

//可以引用已经定义了的宏名,可以层层置换

②宏名的有效范围包括本文件的任何位置

//宏名的有效范围定义命令之后到本源文件结束,可以用#define终

止宏定义的作用域

③宠定义不是语句,不必在行末加分号

//是预处理定义语句

④对程序中双引号括起来的字符串,即使与宏名相同,也不进行置

3、若定义static char s[20]=”computer”;则执行语句x =

strlen(s);之后,x的值为多少?

①20 ②9 ③8④19

//strlen函数计算char*型字符串的长度的时候,并不包含末尾的\0;

4、以下哪一个表达式取值是正确的?

①65结果为6②6&&5结果为7

③6||5结果为7④65结果为0

5、如定义

enum weekday {one, two, thr, fou, fiv};

enum weekday working;

以下哪个是不正确的枚举变量的使用?

①working = thr;②working =2;

③working = (enum weekday)2;

④working = (enum weekday) (5-3);

//不能对其赋值

6、下列说法中正确的是哪一个?

①sizeof (char) 是结果为整型的表达式

②sizeof (char) 是一个不合法的表示形式

③sizeof (char) 是一种函数调用

④sizeof (char) 是结果为实型的表达式

二、阅读程序,并回答问题(共12分)

1、下列程序的输出是什么?(3分)

# include stdio. h

void main ()

char * aplha [6] = ﹛“abc”,“def”,“ghi”,“jkl”,“mno”,“pqr”﹜; char **p;

int i;

p = aplha;

for (i = 0; i4; i++)

printf (“%s”, p[i]);

printf (“\n”);

//输出结果

abcdefghijkl

刚好是字符串数组里面的前四个元素的内容连接起来

2、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?(6分)

# include stdio.h

void swap (int x, int y)

int t = x;

x = y;

y = t;

void main ()

int a, b, c;

scanf (“%d, %d, %d”, &a, &b, &c);

if (ab) swap (a, b);

if (ac) swap (a, c);

if (bc) swap (b, c);

printf (“%d, %d, %d”, a, b, c);

//函数swap采用值传递,虽然将形参x和y交换了,但是并不影响到实参。将值传递改成指针传递就可以了。

c函数参数采用值传递方式,虽然swap函数将形式参数x和y的值进行了调换,但是影响不到相应的实在参数。所以在主函数中,通过调用sawp函数调换a和b(或a或c,或b和c)的值是根本达不到目的的。

修改:

(1)(2分)

void swap (int *x, int*y)

int t = *x;

*x = *y;

*y = t;

(2)(2分)主函数

if(ab) swap(&a,&b);

if(ac) swap(&a,&c);

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

C语言历年考题真题解析

C语言历年考题真题解析 This model paper was revised by the Standardization Office on December 10, 2020

语言规定,在一个源程序中main函数的位置 ______ 。(2010年春选择题第21题) A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C程序总是从main函数的第一条语句开始执行。 【答案】D 2.以下叙述中正确的是________ 。(2009年秋选择题第21题) 语言系统以函数为单位编译源程序 函数必须放在程序开始 C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数 【解析】C语言系统以程序为单位编译源程序,程序由函数组成。main函数可以放在其他函数之前或之后。除了main函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。 【答案】C 3.以下叙述中正确的是_________ 。(2008年秋选择题第21题) A.在编译时可以发现注释中的拼写错误 语言程序的每一行只能写一条语句 (){}必须位于程序的开始 语言程序可以由一个或多个函数组成 【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。main函数可以放在程序中的任何位置。C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。 【答案】D 4.以下关于C语言源程序的叙述中错误的是________。(2007年春选择题第21题) A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义 B.函数定义由函数头部和函数体两部分组成 C.在一个函数定义的函数体中允许定义另一个函数 D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身 【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义,函数定义由函数头部和函数体两部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。 【答案】C 基本数据类型 1.以下选项中,___________ 是C语言关键字。 (2010年春选择题第22题) 【解析】default是关键字,用在switch语句中。printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。fun是用户自定义标识符。

计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】 class=txt>c语言程序设计 (考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构的是 a)循环队列 b) 带链队列 c) 二叉树 d)带链栈 (2)下列数据结果中,能够按照“先进后出”原则存取数据的是 a) 循环队列 b) 栈 c)队列 d)二叉树 (3)对于循环队列,下列叙述中正确的是 a)队头指针是固定不变的 b)队头指针一定大于队尾指针 c)队头指针一定小于队尾指针 d)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指 a)算法在执行过程中所需要的计算机存储空间 b)算法所处理的数据量 c)算法程序中的语句或指令条数 d)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 a) 低内聚低耦合 b) 高内聚低耦合 c) 低内聚高耦合 d) 高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是 a) 可封装 d) 自顶向下

c) 模块化 d) 逐步求精 (7)软件详细设计产生的图如下: 该图是 a) n-s图 b) pad图 c) 程序流程图 d) e-r图 (8)数据库管理系统是 a)操作系统的一部分 b) 在操作系统支持下的系统软件 c) 一种编译系统 d) 一种操作系统 (9)在e-r图中,用来表示实体联系的图形是 a) 椭圆图 b) 矩形 c) 菱形 d) 三角形 (10)有三个关系r,s和t如下: 其中关系t由关系r和s通过某种操作得到,该操作为 a) 选择 b) 投影 c) 交 d) 并 (11)以下叙述中正确的是 a)程序设计的任务就是编写程序代码并上机调试 b)程序设计的任务就是确定所用数据结构 c)程序设计的任务就是确定所用算法 d)以上三种说法都不完整 (12)以下选项中,能用作用户标识符的是 a)void b)8_8 c)_0_ d)unsigned (13)阅读以下程序

大学C语言考试试题

C语言模拟试题 一、判断 1、关系运算符<= =与= =的优先级相同。(N ) 2、C语言的函数可以嵌套定义。(N ) 3、若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5, 则a=10,c=?A?,f=12.5.( Y ) 4、变量根据其作用域的范围可以分作局部变量和全局变量。( Y ) 5、#define和printf都不是C语句。( Y ) 6、Int I,*p=&I;是正确的C说明。( Y ) 7、结构体类型只有一种。( N ) 8、在Turbo C中,整形数据在内存中占2个字节。( N ) 9、一个include命令可以指定多个被包含的文件。( N ) 10、有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8).( Y ) 二、选择 2、C语言中,char类型数据占(A) A、1个字节 B、2个字节 C、4个字节 D、8个字节 3、已知x=43,ch=?A?,y=o;则表达式(x>=y&&ch1;i--) for(j=1;j

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) 5、打印三行输出的C语言程序必须用三条printf语句。(F) 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

全国计算机等级考试 历年真题2009年3月二级C语言笔试真题及答案

全国计算机等级考试历年真题2009年3月二级C语言笔试真题及答案 一、选择题(每题2分,共计70分) 1.(1)下列叙述中正确的是 A)栈是先进先出的线性表 B)队列是"先进后出"的线性表 C)循环队列是非线性结构 D)有序线性表即可以采用顺序存储结构,也可以采用链式存 储结构 A B C D 2.(2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 A B C D 3.(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 A B C D 4.(4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序

D)堆排序 A B C D 5.(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列 属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 A B C D 6.(6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试程序进行"错误定位"是程序调试的必要步骤 C)程序调试也成为Debug D)软件测试应严格执行测试计划,排除测试的随意性 A B C D 7.(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度 A B C D 8.(8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训

专升本C语言历年试题及答案

专升本C语言历年考试题及答案 一、单项选择题 1. ___D___是合法的用户自定义标识符。 A、 b-b B、float C、 D、 _isw 2. 若变量已正确定义并赋值,表达式___B___不符合C语言语法。 A、a*b/c; B、3.14%2 C、2, b D、a/b/c 3. ___C__是不正确的字符常量。 A、'n' B、'1' C、"a" D、'101' 4. 在 C 程序中,用___B__表示逻辑值“真”。 A、1 B、非 0 的数 C、非 1 的数 D、大于 0 的数 5. __C____把x、y定义成float类型变量,并赋同一初值3.14。 A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14; 6. 若变量已正确定义,表达式___C___的值不是2。 A、2&3 B、1<<1 C、a==2 D、1^3 7. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和__C____等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 8. 设变量定义为“int a, b;”,执行下列语句时,输入_D____,则a和b的值都是10。 scanf("a=%d, b=%d",&a, &b); A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10 9. 下列程序的输出结果是__D___。

fun(int a, int b, int c) { c =a*b; } void main( ) { int c; fun(2,3,c); printf(”%dn”,c); } A、0 B、1 C、6 D、无法确定 10. 在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。 A、int B、double C、void D、char 11. 表达式 strlen(”hello”) 的值是___B____。 A、 4 B、 5 C、 6 D、 7 12. 设变量定义为“int a[4];”,则表达式__D____不符合C语言语法。 A、*a B、a[0] C、a D、a++ 13. 设变量定义为“int x, *p=&x;”,则&*p相当于__A___。 A、p B、*p C、x D、*&x 14. 若变量已正确定义,_A___不能使指针p成为空指针。 A、p=EOF B、p=0 C、p=’’ D、p=NULL 15. 对于以下的变量定义,表达式__D____不符合C语言语法。 struct node { int len; char *pk;

计算机二级C语言测试题及答案解析(一)

2016年计算机二级C语言测试题及答案解析(一)1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 D、包含文件中的第一个函数 3、以下说法中正确的是(C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A、C程序的工作过程是编辑、编译、连接、运行 B、C语言不区分大小写。 C、C程序的三种基本结构是顺序、选择、循环 D、C程序从main函数开始执行 5.下列正确的标识符是(C )。

B、a[i] C、a2_i D、int t 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成 数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C )。 A、%x B、a+b C、a123

选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C 中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C 。 A、2.5 B、2 C、1 D、3 %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%

C语言期末考试真题

第五套 一、判断题 1.(F)在一个c程序中,main函数必须出现在所有函数之前。 2.(F)#include”stdio.h”是每个程序中必须写的。 3.(F)c程序总是从程序的第一条语句开始执行的。 4.(F)以下各数均不是合法的八进制数:256,03A2,-0127。 5.(F)语句scanf(“%7.2f”,&a):是一个合法的scanf函数。 6.(T)整数-32100可以赋值给int型和long int型变量。 7.(F)表达式(j=3,j++)的值是4. 8.(F)在c程序中,赋值运算符的优先级最低。 9.(F)7&3+12的值是15. 10.(F)若a是实型变量,在执行了a=5后,a将变为整型变量。 11.(F)若有i=10,j=2:则执行完i*=j+8:后i的值是28. 12.(F)若a是实型变量,c程序中允许以下赋值a=10:因此实型变量中允许存放整型变量。 13.(T)在c语言中,逻辑“真”等价于不等于0的数。 14.(F)开关语句switch最多可以形成3个分支. 15.(T)Int a=1,b=2,c=3:if(a>c)b=a:a=c:c=b:则c的值是2. 16.(T)Int i=3,j=5:if(i>j):是正确的。 17.(F)若有i=10,j=0:则执行完语句if(j=0):i++:elsei --:i的值为11 18.(T)break语句只能用于循环语句switch-case语句中。 19.(T)若有说明int c:则while(c=getchar()):是正确的c语句。 20.(T)Int a[10]:for(i=1:i<10:i++)a[i-1]=i:能使数组元素分别取值{1,2,3,4,5,6,7,8,9,10}. 21.(F)二维数组在内存中储存以列为主序方式存放。 22.(T)c程序中#include和#define均不是c语句 23.(F)通过return语句,函数可以带回一个或一个以上的返回值 24.(T)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量 25.(T)对结构体类型的变量的成员可以象普通变量一样参与各种运算 二、选择题 1.(A)是构成c语言程序的基本单位。 A函数 B变量 C子程序 D语句 2.(B)以下叙述中正确的是 A.c语言的源程序不必通过遍译就可以直接运行。 B.语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.c源程序经编译形成的二进制代码可以直接运行

C语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

历年全国计算机二级C语言试题库完整

. . . . 参考 50道C 语言知识题 1.以下叙述中正确的是 A)用C 程序实现的算法必须要有输入和输出操作 B)用C 程序实现的算法可以没有输出但必须要有输入 C)用C 程序实现的算法可以没有输入但必须要有输出 D)用C 程序实现的算法可以既没有输入也没有输出 2.下列可用于C 语言用户标识符的一组是 A)void,define,WORDB)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 3.以下选项中可作为C 语言合法常量的是 A)-80B)-080C)-8e1.0D)-80.0e 4.若有语句:char*line[5];,以下叙述中正确的是 A)定义line 是一个数组,每个数组元素是一个基类型为char 为指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line 是一个指针数组,语句中的*号称为间址运算符 D)定义line 是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)inta=b=0;B)charA=65+1,b=′b′; 6.有以下程序段 charch;intk; ch=′a′; k=12; printf("%c,%d,",ch,ch,k);printf("k=%d\n",k); 已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() {inti,s=1; for(i=1;i<50;i++) if(!(i%5)&&!(i%3))s+=i; printf("%d\n",s);} 程序的输出结果是 A)409B)277C)1D)91 8.当变量c 的值不为2、4、6时,值也为"真"的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段

2009年3月二级C语言笔试真题及答案

2009年3月二级C语言笔试真题及答案 一、选择题(每题2分,共计70分) 1.(1)下列叙述中正确的是 A)栈是先进先出的线性表 B)队列是"先进后出"的线性表 C)循环队列是非线性结构 D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构 2. (2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 3. (3)某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 4. (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列 属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试程序进行"错误定位"是程序调试的必要步骤 C)程序调试也成为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度

(8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择 B)投影 C)插入 D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为 A)属性 B)键 C)关系 D)域 (11)一下选项中合法的标识符是 A)1_1 B)1-1 C)_11 D)1_ _ (12)若函数中有定义语句:int k;,则 A)系统将自动给k赋初值0 B)这是k中的值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)一下选项中,能用作数据常量的是 A)o115 B)0118 C)1.5e1.5 D)115L (14)设有定义:int x=2;,一下表达式中,值不为6的是 A)x*=x+1 B)X++,2*x C)x*=(1+x) D)2*x,x+=2 15. (15)程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930

c语言历年考题真题解析

(2010年春选择题第21题) A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C程序总是从main函数的第一条语句开始执行。 【答案】D 2.以下叙述中正确的是________ 。(2009年秋选择题第21题) 语言系统以函数为单位编译源程序 函数必须放在程序开始 C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数 【解析】C语言系统以程序为单位编译源程序,程序由函数组成。main函数可以放在其他函数之前或之后。除了main函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。 【答案】C 3.以下叙述中正确的是_________ 。(2008年秋选择题第21题) A.在编译时可以发现注释中的拼写错误 语言程序的每一行只能写一条语句 (){}必须位于程序的开始 语言程序可以由一个或多个函数组成

【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。main函数可以放在程序中的任何位置。C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。 【答案】D 4.以下关于C语言源程序的叙述中错误的是________。(2007年春选择题第21题) A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义 B.函数定义由函数头部和函数体两部分组成 C.在一个函数定义的函数体中允许定义另一个函数 D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身 【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main 的函数定义,函数定义由函数头部和函数体两部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。 【答案】C 基本数据类型 1.以下选项中,___________ 是C语言关键字。 (2010年春选择题第22题) 【解析】default是关键字,用在switch语句中。printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。fun是用户自定义标识符。 【答案】D 2.在以下各组标识符中,均可以用作变量名的一组是_____。(2007年秋选择题第22

计算机二级C语言编程题库(100题)

2011,____年上机题100题库 1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 答案: int fun(int score[],int m,int below[]) { int i,k=0,aver=0; for(i=0;i<m;i++) aver+=score[i]; aver/=m; for(i=0;i<m;i++) if(score[i]<aver) { below[k]=score[i]; k++; } return k; } 2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案: void fun(int *a, int *n) { int i,j=0; for(i=2;i<1000;i++) if ((i%7==0 || i%11==0) && i%77!=0) a[j++]=i; *n=j; } 3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 答案: void fun(int x, int pp[ ], int *n) { int i=1,j=0;k=0,*t=pp; for(i=0;i<=x;i++) if(i%2!=0) { t[j]=I; j++; }

相关主题
文本预览
相关文档 最新文档