文档库 最新最全的文档下载
当前位置:文档库 › C语言习题集及答案

C语言习题集及答案

C语言习题集及答案
C语言习题集及答案

第一章C语言概述

一、选择题:

1、一个C程序的执行是从( A )。

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

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

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

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

2、在 C 语言中,每个语句必须以( D )结束。

A. 回车符

B. 冒号

C. 逗号

D. 分号

3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始

B. 必须在系统调用的库函数的后面

C. 可以任意

D. 必须在最后

4、一个C 语言程序是由( B )。

A. 一个主程序和若干子程序组成

B. 函数组成

C. 若干过程组成

D. 若干子程序组成

5、下列说法中错误的是( D )。

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

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

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

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

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

A. 生成可执行目标文件

B. 生成目标文件

C. 输出运行结果

D. 自动保存源文件

二、填空题:

1、C 语言只有 32 个关键字和 9 种控制语句。

2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。

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

4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函

数 printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。

6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的 C 语言浮点型常量是( C )。

A. 160.

B. 0.12

C. 2e4.2

D. 0.0

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

A. 'a'

B. '\x41'

C. '\101'

D. "a"

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

A. 原码

B. 反码

C. ASCII 码

D. BCD码

4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。

x=(i=4,j=16,k=32)

A. 4

B. 16

C.32

D.52

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

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

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

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

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

6、若有代数式,则不正确的C语言表达式是( C )。

A.a/b/c*e*3

B. 3*a*e/b/c

C.3*a*e/b*c

D. a*e/c/b*3

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=a>b)&&(n=c>d)后, m,n 的值是( A)。

A. 0,0

B. 0,1

C. 1,0

D. 1,1

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

A. 3

B. 0

C. 9

D. -12

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

A. *

B. !=

C. +

D. =

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

A. 6

B. 12

C. 15

D. 表达式出错

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

A. 1

B. 2

C. 2.0

D. 2.5

13、sizeof (double)的结果值是( A )。

A. 8

B. 4

C. 2

D. 出错

14、设a=1,b=2,c=3,d=4,则表达式:a

A. 4

B. 3

C. 2

D. 1

15、设a 为整型变量,不能正确表达数学关系:10

A. 10

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

C. a>10 && a<15

D. !(a<=10) && !(a>=15)

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

A. f= 3.2, 1.0

B. f>0, f<10

C. f=2.0, f>0

D. f=(3.2, 1.0)

17、表达式18/4*sqrt(4.0)/8值的数据类型是( C )。

A. int

B. float

C. double

D. 不确定

18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句

C2=’A’+’6’-‘3’;后c2中的值是( A )。

A. D

B. 68

C. 不确定的值

D. C

19、以下用户标识符中,合法的是( B )。

A. int

B. nit

C. 123

D. a+b

20、C 语言中,要求运算对象只能为整数的运算符是( A )。

A. %

B. /

C. >

D. *

21、若有说明语句:char c='\72';则变量c在内存占用的字节数是( A )。

A. 1

B. 2

C. 3

D. 4

22、字符串"ABC"在内存占用的字节数是( B )。

A. 3

B. 4

C. 6

D. 8

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

A. char a="3";

B. char a=’3’;

C. char a=%;

D. char a=*;

24、下列不正确的转义字符是( C )。

A. \\

B. \'

C. 074

D. \0

二、填空题:

1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。

3、设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别

为 1 、 0 、 1 、 1 。

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

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

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

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

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

三、编程题:

1、设长方形的高为 1.5,宽为 2.3,编程求该长方形的周长和面积。

2、编写一个程序,将大写字母 A转换为小写字母 a。

1.

main()

{float x=1.5,y=2.3;printf(“area is %6.2f\n”,x*y);}

2.

main()

{char c=’A’;printf(“%d”,c+32);}

顺序结构答案

一、单项选择题

AADAB CCBBD

二、程序改错题

1.正确的程序为

# include "stdio.h"

main( )

{ char c ;

getchar(c);

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

putchar( );

}

2.正确的程序为

main( )

{ int a,b,s,l;

scanf("%d,%d",&a,&b);

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

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

}

三、写出程序运行结果

1. 68

2. x=4

y=11

四、编程题

1. main( )

{ int a,b,c,sum;

float ave;

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

sum=a+b+c; ave=sum/3.0;

printf(“sum=%d,ave=%.2f\n”,sum,ave); }

五、选做题

1.void main( )

{ float a,b,temp;

printf("input a and b:");

scanf("%d,%d",&a ,&b);

temp = a; a = b; b = temp;

printf("a=%d , b=%d\n", a , b); }

选择结构答案

一、单项选择题

1.B

2.A

3.D

4.C

5.D

6.B

7.C

二、填空题

1. 5 5 4

5 5 4

3 3 4

2. 4 0

3. VeryGood

Good

VeryGood

Fail

Pass

Pass

三、阅读程序,写出运行结果

1. 10, 4, 3;

-1

3

6

1

四、程序设计题

1. main( )

{ int a,b,x,y;

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

x=a*a+b*b;

if(x>100)

{y=x/100; printf(“%d”,y);}

else printf(“%d”,a+b);

}

2. if结构

main()

{ float t;char c;

printf(“input score,max as 100:\n”); scanf(“%f”,&t);

if(t>=90) ch=’A’;

else if(t>=80) ch=’B’;

else if(t>=70) ch=’C’;

else if(t>=60) ch=’D’;

else ch=’E’;

printf(“Grade=%d\n”,ch);

}

switch结构

main()

{float t;char c;

printf(“input score,max as 100:\n”); scanf(“%f”,&t);

switch(t/10)

{ case 10:

case 9: ch=’A’;break;

case 8: ch=’B’;break;

case 7: ch=’C’;break;

case 6: ch=’D’;break;

case 5: ch=’E’;

}

printf(“Grade=%d\n”,ch);

}

五、选做题

1. main()

{ int a,b,c,t;

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

if(a

if(a

if(b

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

}

2. switch((s>0)&&(s<=10))

{case 1: switch ((s>=3)&&(s<=6))

{ case 1: x=2; break;

case 0: switch (s>1)||(s>8)) { case 1: x=3; break;

case 0: x=1; break;

}

} break;

case 0: x=0; break;

}

循环结构答案

一、选择题

1.B 2.A 3.A 4.C 5.A 6.B 7.A 8.C 9.D 10.D

二、填空题

1. x1 x1/2-2

2. ch=getchar() ch>=’A’&&ch<=’Z’

3. s=s+t*i t=-t

三、阅读下列程序,写出程序运行的输出结果

1.852

2. 8921

3. 5

4. SUM=2468

四、程序改错

1.main()

{ int i=200,n=0; /*n用来记录每行已打印数的个数*/ while(i<=300)

{if(i%7==0)

{ //break;

printf("%5d",i); n=n+1;

if(n==5) /*满5个换行*/

{ printf("\n"); n=0; }

}

i++; } }

2). main( )

{ int i,s=0,t=1;

for(i=1;i<=7;i++)

{ t=t*i; s=s+t; } printf("sum=%d\n",s);

}

五、程序设计题

1. main()

{int x,g,s,b;

for(x=100;x<1000;x++)

{ b=x/100;s=x%100/10;g=x%10; if((g*g*g+s*s*s+b*b*b)==x) printf(“%d\n”,x); }

}

2. main()

{ int i,s=0,f=1;

for(i=2;i<80;i++)

{s=s+f*(i-1)/i; f=-f;}

printf(s=%f\n”,s);

}

六、选做题

1. main()

{ float s=0,m=2.0,n=1.0,p;

int i;

for(i=1;i<=20;i++)

{s=s+m/n; p=m; m=m+n; n=p;} printf(s=%f\n”,s);

}

2.#include

main( )

{ int i,j,k,s=1;

for(i=1;i<=20;i++)

for(j=1;j<=50;j++)

{ k=100-i*5-j*2;

if(k>=0)

{ printf(“%2d %2d %2d”,i,j,k);

s=s+1;

if(s%5==0) printf(“\n”);

}

}

}

第7章数组习题

A卷

1. 单项选择题

(1) int a[4]={5,3,8,9};其中 a[3]的值为( )。D

A. 5

B. 3

C. 8

D. 9

(2) 以下 4 个字符串函数中,( )所在的头文件与其他 3 个不同。A

A. gets

B. strcpy

C. strlen

D. strcmp

(3) 以下 4 个数组定义中,( )是错误的。 D

A. int a[7];

B. #define N 5 long b[N];

C. char c[5];

D. int n,d[n];

(4) 对字符数组进行初始化,( )形式是错误。 B

A. char c1[ ]={'1', '2', '3'};

B. char c2[ ]=123;

C. char c3[ ]={ '1', '2', '3', '\0'};

D. char c4[ ]="123";

(5) 在数组中,数组名表示( )。 A

A. 数组第 1 个元素的首地址

B.数组第 2 个元素的首地址

C. 数组所有元素的首地址

D.数组最后 1 个元素的首地址

(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。 B

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};

A. 1,12

B. 0,11

C. 1,11

D. 0,12

(7) 若有以下说明,则数值为 4 的表达式是( )。 D

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;

A. a[g-c]

B. a[4]

C. a['d'-'c']

D. a['d'-c]

(8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。 A

A. 6

B. 7

C. 11

D. 12

(9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( )。 D

A. 6

B. 7

C. 11

D. 12

(10) 合法的数组定义是( )。 A

A. char a[ ]= "string " ;

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

C. char a= "string " ;

D. char a[ ]={0,1,2,3,4,5}

(11) 合法的数组定义是( )。 D

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

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

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

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

(12) 下列语句中,正确的是 ( )。D

A. char a[3][ ]={'abc', '1'};

B. char a[ ][3] ={'abc', '1'};

C. char a[3][ ]={'a', "1"};

D. char a[ ][3] ={ "a", "1"};

(13) 下列定义的字符数组中,输出 printf("%s\n", str[2]) ;的输出是( )。 C

static str[3][20] ={ "basic", "foxpro", "windows"};

A. basic

B. foxpro

C. windows

D. 输出语句出错

(14) 下列各语句定义了数组,其中哪一个是不正确的( )。 C

A. char a[3][10]={"China","American","Asia"};

B. int x[2][2]={1,2,3,4};

C. float x[2][ ]={1,2,4,6,8,10};

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

(15) 数组定义为 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]

(16) 下面的程序中哪一行有错误( )。D

#include

main()

{

float array[5]={0.0}; //第A行

int i;

for(i=0;i<5;i++)

scanf("%f",&array[i]);

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

array[0]=array[0]+array[i];//第B行

printf("%f\n",array[0]); //第C行

}

A. 第A行

B. 第B行

C. 第C行

D. 没有

(17) 下面哪一项是不正确的字符串赋值或赋初值的方式( )。 C

A. char *str; str="string";

B. char str[7]={'s','t','r','i','n','g'};

C. char str1[10];str1="string";

D. char str1[]="string",str2[]="12345678";

(18) 若有以下说明和语句,则输出结果是哪一项( )。C

(strlen(s)为求字符串s的长度的函数)

char s[12]="a book!";

printf("%d",strlen(s));

A. 12

B. 8

C. 7

D. 11

(19) 若有以下说明和语句,则输出结果是( )。B

(strlen(s)为求字符串s的长度的函数)

char sp[]="\t\v\\\0will\n";

printf("%d",strlen(sp));

A. 14

B. 3

C. 9

D. 字符串中有非法字符

(20) 若有以下说明和语句,则输出结果是( )。 C

char str[]="\"c:\\abc.dat\"";

printf("%s",str);

A. 字符串中有非法字符

B. \"c:\\abc.dat\"

C. "c:\abc.dat"

D. "c:\\abc.dat"

2. 填空题

(1) C 语言中,数组的各元素必须具有相同的,元素的下标下限为,下标必须是正整数、0、或者。但在程序执行过程中,不检查元素下标是否。

数据类型,0,符号常量,越界

(2) C 语言中,数组在内存中占一片的存储区,由代表它的首地址。数组名是一个常量,不能对它进行赋值运算。连续,数组名,地址

(3) 执行 static int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] = ,a[1][2] = 。 0,6

(4) 设有定义语句 static int a[3][4] ={{1},{2},{3}}; 则 a[1][0]值为,a[1][1] 值为,a[2][1]的值为。 2,0,0

(5) 如定义语句为 char a[ ]= "windows",b[ ]= "95";,语句 printf("%s",strcat(a,b));的输出结果为。Windows95

(6) 根据以下说明,写出正确的说明语句:men是一个有10个整型元素的数组。

step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20.6。

grid是一个二维数组,共有4行,10列整型元素。

int mesh[10]; float step[4] = {1.9, -2.33, 0, 20.6}; int grid[4][10];

(7) array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,正确的说明语句为:

。该数组下标的取值范围是从___到___(从小到大)。用scanf函数输入数组的第二个元素表示

为:。用赋值语句把39存入第一个元素表示为:。

把第六个和第四个元素之和存入第一个元素表示为:。

int array[10] = {9,4,7,49,32,-5}; 0 9 scanf("%d",&array[1]); array[0] = 39; array[0]=

array[5]+array[3];

(8) 写出以下初始化数组的长度:①int chn[3];数组chn的长度为___。②float isa[]={1.0,2.0,3.0,4.0,5.0};

数组isa的长度为___。③int doom[8];数组doom的长度为___。④float pci[4][2];数组pci的长度为___。

⑤int ast[3][3];数组ast的长度为___。⑥int att[3][4];数组att的长度为___。

⑦float dell[][3]={{1,4,7},{2,5},{3,6,9}};数组dell的长度为___。 6 20 16 32 18 24 36

(9) 若有以下整型的a数组,数组元素和它们得值如下所示:

数组元素: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

元素的值: 9 4 12 8 2 10 7 5 1 3

①请写出对该数组的说明,并赋以上初值。

②该数组的最小下标值为___,最大下标值为___。

③写出下面各式的值:a[a[9]]的值为___ ;a[a[4]+a[8]]的值为___。

int a[10]={9,4,12,8,2,10,7,5,1,3}; 0 9 8 8

(10) 字符串"ab\n\\012/\\\""的长度为___。10

3. 判断题

(× )(1) C允许对数组的大小作动态定义,即可用变量定义数组的大小。

(× )(2) 字符数组不要求它的最后一个字符为‘\0’,甚至可以不包含‘\0’。

(× )(3) 数组定义 int a[10]; 也可以写成 int a(10); 。

(√ )(4) 在对全部数组元素赋初值时,可以不指定数组长度。

(× )(5) 定义s为5×6(5行6列)的数组可写成 float a[5,6];

(√ )(6) 数组定义 int a[10]; 表示数组名为a,此数组有10个元素。

(× )(7) 数组定义 int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。

(√ )(8) static char c[]={“a book”}; 与static char c[]=“a book”; 等价。

(× )(9) static char c[]={'a' ,' ','b','o','o','k','\0'};与 static char c[]={'a' ,' ' ,'b','o','o','k'}; 等价。

(× )(10) 设已有说明:static char c1[10],c2[10]; 下面程序片段是合法的。c1={“book”}; c2=c1;

4. 程序填空题

(1) 输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。

#include

void main( )

{

float a[20],pjz=0,s,t; int i,k;

for(i=0;i<20;i++) pjz+=a[i];

s=fabs(a[0]-pjz);

for(i=1;i<20;i++)

if(fabs(a[i]-pjz)

{

s=fabs(a[i]-pjz); t=a[i];

}

}

-------------------------------------------------------------------------------- for(i=0;i<20;i++) scanf(“%f”,&a[i]); pjz/=20; printf(“%f,%f\n”,piz,t);

(2) 以下程序以每行 10个数据的形式输出 a 数组,请填空。

void main( )

{

int a[50],i;

printf("输入50个整数:");

for(i=0; i<50; i++) scanf( "%d", );

for(i=1; i<=50; i++)

{ if( )

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

printf( "%3d",a[i-1]);

}

}

&a[i] i%10==0 a[i-1]

(3) 下面程序的功能是输出数组 s 中最大元素的下标,请填空。

void main( )

{

int k, p;

int s[ ]={1,-9,7,2,-10,3};

for(p=0,k=p; p<6; p++)

if(s[p]>s[k]) ;

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

}

k=p

(4) 这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、20个数的和及它们的平均值。请填空。 void main()

{

char array ;

int max,min,average,sum;

int i;

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

{

printf("请输入第%d个数:",i+1);

scanf("%d", );

}

max=array[0];

min=array[0];

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

{

if(max

if(min>array[i])

sum= ;

}

average = ;

printf("20个数中最大值是%d,",max); printf("最小值是%d,",min);

printf("和是%d,",sum);

printf("平均值是%d.\n",average);

}

[20]

20

&array[i]

19

max=array[i];

min=array[i];

sum+array[i]

sum/20

B卷

5. 阅读程序,分析程序的功能。

(1)

#include

#include

void main( )

{

char s[80];

int i ;

for(i=0; i<80; i++)

{

s[i]=getchar( );

if(s[i]=='\n') break;

}

s[i]='\0'; i=0;

while(s[i]) putchar(s[i++]);

putchar(‘\n’);

}

从键盘输入一个字符串,并逐一输出

(2)

#include

#include

void main( )

{

char str[10][80], c[80];

int i;

for(i=0; i<10; i++) gets(str[i]);

strcpy(c, str[0]) ;

for(i=1; i<10; i++) if(strlen(c)

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

}

从键盘输入若干字符串,找到其中最长的一个输出及它的长度

(3)

#include

#include

void main( )

{

char a[10][80], c[80];

int i, j, k;

for(i=0; i<10; i++) gets(a[i]);

for(i=0; i<9; i++)

{

k=i ;

for(j=i+1; j<10; j++)

if(strcmp (a [j], a[k])<0) k=j;

if(k!=i )

{strcpy(c,a[i]) ; strcpy(a[i], a[k]); strcpy(a[k],c);} // 字符串交换

}

for(i=0; i<10; i++) puts (a[i]);

}

从键盘输入若干字符串,并将它们按大到小顺序排好再输出

(4) 阅读程序,写出运行结果

#include

void main( )

{

int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++)

{

for(j=0;j<6;j++) if(a[i]==b[j])break;

if(j<6) printf("%d ",a[i]);

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

大学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

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当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) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

C语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char*p[10];该语句声明了一个:。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D)有10个元素的指针数组p,每个元素存放一个字符串 2.若intx;且有下面的程序片断,则输出结果为:。 for(x=3;x<6;x++) { printf((x%2)"##%d":"**%d\n",x); } A) ##3B)**3 C)**3D)##3**4 **4##4##4**5##5 ##5**5 3.在while(!x)语句中的!x与下面条件表达式等价的是:。 A)x!=0B)x==1 C)x!=1D)x==0 4.已知 structpoint { intx; inty; }; structrect { structpointpt1; structpointpt2; }; structrectrt; structrect*rp=&rt; 则下面哪一种引用是不正确的________。 A) r t.pt1.xB) (*rp).pt1.xC) rp->pt1.x D)rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为:。 A)*(a+j*n+i)B)*(a+i*n+j)C)*(*(a+i)+j)D)*(*a+i) +j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1.#include main()

{intn; staticchar*monthName[]= {"Illegalmonth","January","February", "March","April","May","June","July","August", "September","October","November","December"}; for(n=1;n<=12;n++) { printf("%s\n",monthName[n]); } } 运行结果是: January February March April May June July August September October November December 2.#include #defineARR_SIZE7 voidYH(inta[][ARR_SIZE],intn); voidPrintYH(inta[][ARR_SIZE],intn); main() {inta[ARR_SIZE][ARR_SIZE];

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (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 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) 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 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (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 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

c语言试卷及答案1

c语言试卷及答案1

浙江理工大学 C程序设计试题(一) 试题二、语言基础题(本题共30分) (一)判断题(本题共10分,每小题1分) 说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (16) C语言程序的三种基本结构是顺 序、选择和嵌套。 (17) 在C语言程序中,在函数内部定 义的变量称为全局变量。 (18) 运算符“=”和“&=”的优先级相 同。 (19) ‘%f’是不正确的字符常量。 (20) 运算符“+”不能作为单目运算符。 (21) 如果运算符“*”和“/”都是右 结合的,则表达式10*6/5的值是10。 (22) s(s-a)(s-b)(s-c)是合法的C语 言表达式。 (23) 表达式!!6的值是6。 (24) 表达式~(~2<<1)的值是5。 (25) 对于变量定:int a[10],*p=a+8; 数组a的最后一个元素是p[1]。

(二)单选题(本题共20分,每小题2分) (26) 执行语句printf("(26) ", "A");将得到出错信息。 A、%u B、%s C、%e D、%d (27) 设c是一个字符变量,求解表达 (27) 后,c的值不是1就是0。 A、c=getchar()!=’\n’ B、(c=getchar()!)=’\n’ C、c=’1’ D、c=EOF (28) 下列定义中,(28) 定义的变 量可以存放-123.4。 A、long a; B、 unsigned b; C、int d; D、float c; (29) 对于变量定义;char *pp[100], pp是一个(29) 。 A、函数 B、数组元素 C、指针变 量D、数组 (30) 下列程序段的输出结果是 (30) 。 char *st[ ]={ "SUM","MOON","STAR","X"}; printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2)

(完整版)c语言期末考试题及其答案

选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); } A d=70 B d=80 C d=140 D d=700 10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D 6 11.设有以下定义,值为5的枚举常量是()。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu 12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设有以下程序段,则值为6的表达式是()。 struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++ 写出下列程序的运行结果(10分,每小题2分) 1.float average (float array[10]) { int i;

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】A) 函数B) 语句C) 字符D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】A) 整型、实型、逻辑型B) 整型、实型、字符型 C) 整型、双精度型、布尔型D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】A) 固定的B) 由用户自己定义的 C) 任意的D) 与机器字长有关

C语言模拟试卷及答案详解

2012―2013 学年第一学期 《C 语言程序设计》模拟试卷(B) 一、单项选择题(每题1分,共30分) 1.C 语言程序总是从______开始执行。 A) 第一条语句 B) 第一个函数 C) 主函数 D) 子程序 2.以下选项中正确的C 语言标识符是______。 A) a+b B) 3Dmax C) _25 D) %d 3.以下选项中正确表示字符型常量的是______。 A) '\t' B) "a" C) 'abc' D) '279' 4.以下选项中属于C 语言基本数据类型的是______。 A) 逻辑型 B) 双精度型 C) 复数型 D) 集合型 5.已知:int a=8,b=5,c;,则执行语句c=a%b+0.3;后,c 的值是______。 A) 1 B) 1.3 C) 3 D) 3.3 6.设在程序中的a ,b ,c 均被定义为整型并且已赋予大于1的值,能正确表示代数式abc 1的表达式 是______。 A)1/a*b*c B)1/(a*b*c) C)1/a/b/(float)c D)1.0/a/b/c 7.已知字符'A'的ASCII 码值为十进制数65,则执行语句printf("%c",'A'+2);后,输出结果是______。 A) A B) C C) 65 D) 67 8.已知:int i=1;,则执行语句printf("%d",i++);后,输出结果是______。 A) 1 B) 2 C) -1 D) -2 9.以下选项中,和语句x*=y+2;等价的是______。 A) x=x*y+2; B) y=x*(y+2); C) x=y+2*x; D) x=x*(y+2); 10.以下选项中能正确判断字符变量c 不是大写字母的表达式是______。 A) c<'A' && c>'Z' B) !(c<'A' && c>'Z') C) c>='A' || c<='Z' D) !(c>='A' && c<='Z') 11.已知:float a=7.0,b=2.5;,则表达式(int)a/(int)b 的值是______。 A) 2 B) 2.8 C) 3 D) 3.5 12.已知:int a,b,c;,若要给变量a 、b 、c 输入数据,以下正确的输入语句是______。 A) scanf ("%d,%d,%d",a,b,c); B) scanf ("%d,%d,%d",&a;&b;&c); C) scanf ("%d,%d,%d",&a&b&c); D) scanf ("%d,%d,%d",&a,&b,&c); 13.已知:int a=1,b=2;,则执行语句printf("%d",a>b?a:b);后,输出结果是______。 A) 0 B) 1 C) 2 D) 以上都不正确 14.以下选项中叙述正确的是______。 A) 在switch 语句中,不一定使用break 语句 B) break 语句必须与switch 语句中的case 配合使用 C) 在switch 语句中必须使用default D) break 语句只能用于switch 语句中 15.执行以下程序后,输出结果是______。 #include void main()

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

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言试题及答案

一 下面四个选项中,均是不合法的用户标识符的选项是()。 A、float la0 _A B、A P_0 do C、_123 temp int D、b-a goto int 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A、double B、float C、int D、不确定 设: long w=65535,t=7654321; 根据下面的输出结果,正确的程序段是( ). w=65535,t=7654321 end A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end'); B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end"); C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end"); D、printf("w=%5u,t=%7u\n",w,t);printf( "end"); 选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。 A、0 B、-1 C、非零的数 D、1 假定有以下变量定义: int k=7,x=12; 则能使值为3的表达式是:( ) A、(x%=k)-(k%=5)

B、x%=(k-k%5) C、x%=k-k%5 D、x%=(k%=5) 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 表达式是()。 A、(E>0||E<0) B、(E==0) C、(!E==0) D、(E!=0) 下面有关 for 循环的正确描述是()。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 在C语言中,一维数组的定义方式为:类型说明符数组名()。 A、[整型常量]或[整型表达式] B、[正整型常量表达式] C、[整型表达式] D、[常量表达式] 以下正确的说法是( ). A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 若调用一个函数,且此函数中没有return语句,则正确的说法是: 该函数()。 A、没有返回值 B、返回一个不确定的值 C、返回若干个系统默认值 D、能返回一个用户所希望的值 设函数的调用形式如下: f((x1, x2),(y1,y2,y3)),则函数有 ( )个形参. A、2 B、4 C、3 D、5

c语言试题及答案24213

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 输出结果:

相关文档