文档库 最新最全的文档下载
当前位置:文档库 › C语言考试题2003B

C语言考试题2003B

C语言考试题2003B
C语言考试题2003B

课程: C语言程序设计(B卷)

班号:学号: 姓名:

注:①考试时间为120分钟,必须在30分钟后方可交卷。

②答题开始前,班长需向监考人员报告应到人数、是否有缺考、缺考人姓名、缺考原因等。

③答题完毕后,将答题纸交卷,试卷可自行带走。

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

1.以下选项中,均符合C常量形式的是(1)。

A) e5, 0123 B) 0xffce, ‘\n’ C) 02468, 0.1e-5 D) 102, 123

2.假定 int a=2, b=3, c=0, 表达式: (a==b>1)+(a&&!c)+b/a*2.0 的值是 (2) 。

A) 2.0 B) 3.0 C) 4.0 D) 5.0

3.假定 int a=1, b=2, c=0, 表达式: c=(a== --b||--a,a+b+1.0/2) 的值是 (3) 。

A) 1 B) 2 C) 1.5 D) 2.5

4.表达三个变量a、b、c中有一个为0,两个为非0的正确表达式是 (4) 。

A) a*b*c= =0 B) a*b!=0||a*c!=0||b*c!=0

C) (a*b||a*c||b*c)&&!(a*b*c) D) !(a*b*c)&&(a+b+c)

5.在以下表达式中,与 !(a+b) && a*b不等价的是 (5) 。

A)a+b==0 && a*b!=0 B) a!=0 && b!=0 && !(a+b)

C) !(a+b) && a D) a<0 || b<0 && a*b>0

6.以下各循环语句中,不是无限循环的是 (6) 。

A) for( i=0; i--<0; i++ ); B) for ( i=-10; i>=-10<10; i++);

C) for ( i=1,j=10; i-j; i++,j--) ; D) for ( i=1; i=10; i++) ;

7. 设char a[]=”xy\n0\1238\\0”;则数组a的长度是 (7) 。

A)7 B)8 C)9 D)13

8、下列函数的功能是 (8) 。

A)求字符串的长度 B)比较两个字符串的大小

C)将字符串X复制到字符串Y D)将字符串X连接到字符串Y后面

int fun1(chat* x)

{ char*y=x;

while(*y++);

return(y-x-1);

}

9.若希望当字符变量a中为数字字符时,表达式的值为“真”,为非数字字符时,表达式的值为“假”。则以下不能满足要求的表达式是 (9) 。

A) a>=0 && a<=9 B) a>=’0’ && a<=’9’

A)C) a>=48+0 && a<= 48+9 D) a-‘0’>=0 && a-‘0’<=9

10.以下程序的功能是 (10) 。

main()

{ int a[10]={3,5,2,9,1,8,0,2,4,6},i,p=0,q=0;

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

{ if(a[i]>p) p=a[i];

if(a[i]

}

printf("\n %d,%d",p,q);

}

A)求最大值和最小值 B) 求最大值的位置和最小值的位置

C) 求最大值的位置和最小值 D) 求最小值的位置和最大值

11.假定a是10个元素的一维数组,若要将后9个数往前移一个位置挤掉最前面的一个数,则

正确的操作是 (11) .

A) for(j=1; j<10; j++) a[j-1]=a[j]; B) for(j=8; j>0; j--) a[j]=a[j+1];

C) B) for(j=9; j>0; j--) a[j-1]=a[j]; D) for(j=0; j<10; j++) a[j]=a[j+1];

12.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式 (12) 。

A) 只能用逻辑表达式 B) 只能用关系表达式

C) 只能用逻辑表达式或关系表达式 D) 可用任意表达式

13.假定要使以下程序的输出结果第一行都是1,第二行都是2,第三行都是3,则正确的数据输入格式是 (13) 。

main()

{ int i,j,a[3][3];

for ( j=0; j<3; j++)

for( i=0; i<3; i++) scanf (“%d”, &a[i][j]);

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

{ printf (“\n”); for ( j=0; j<3; j++) printf (“%d”, a[i][j]); } }

A) 1 2 3 1 2 3 1 2 3 B) 1 1 1 2 2 2 3 3 3

C) 1,2,3,1,2,3,1,2,3 D) 1,1,1,2,2,2,3,3,3

14.在以下各循环语句中,不能正确计算自然数1-100中所有数之和的是 (14) 。

A)for(s=0, i=1; i<=100 ; ) s+=++i;

B) for(s=100, n=100; --n; ) s+=n;

C) for(s=0,i=1, j=100; i<=j; i++, j-- ) s+=i+j;

D) for(s=0, i=0; i<=100 ; ) s+=i++;

15.以下论述中正确的是 (15) .

A) 实型数据占字节数多于整型数据,因此,实型运算比整型运算精确。

B) 二维数组元素有两个下标,在特殊情况下也可以是一个下标。

C) 如果a是带符号整型变量,b是无符号整型变量,则执行a=b后a的值一定为正。

D) 存放文本的文件称文本文件,存放二进制数的文件称二进制文件。

二、程序阅读题(每题3分,共30分)

16、下面程序的输出是 (16) 。

main()

{ int y=9;

for(;y>0;y--)

{ if(y%3==0) { printf("%d",--y); continue; } }

}

A)741 B)852 C)963 D)875421

17.以下程序的运行结果是 (17) 。

main( )

{ int i,n=0;

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

{ do { if(i%3) continue; n++; } while(!i); n++; }

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

}

A) 2 B) 3 C) 4 D) 5

18.以下程序的运行结果是 (18) 。

int a=2;

int f ( int *a) { return (*a)++; }

main( )

{ int s=0;

{ int a=5; s+=f ( &a ); }

s+=f ( &a ); printf ( "\n%d",s );

}

A) 7 B) 8 C) 9 D) 10

19.以下程序的运行结果是 (19) 。

main()

{ int i, n=0;

for( i=1; i<20; i++) if ( i%3==0&&i%5) n++;

printf (“\n %d”, n);

}

A) 1 B) 5 C) 6 D) 7

A) #*#*# B) ##### C) ***** D) *#*#*

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

main( )

{ int i;

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

{ if(i%2) { printf("#");continue;} printf("*");}

printf("\n");

}

21.以下程序的运行结果是 (21) 。

main()

{ int i,b,k=0;

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

{ b=i%2; while (b––>=0) k++; }

printf (“%d,%d”,k,b);

}

A) 3,–1 B) 8,–1 C) 3,0 D)8,–2 22.以下程序的运行结果是 (22) 。

main() f (int *x, int b)

{ int a=3,b=5; {

f (&a, b); *x+=2;

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

} }

A) 3,5 B) 5,6 C) 3,6 D) 5,5

23.以下程序的运行结果是 (23) 。

int a=3, b=5;

f ( int a ) { a++; b+=a;}

main()

{ int a=6; f (a-1); printf("\n %d,%d",a,b); }

A) 3,8 B) 3,11 C) 6,8 D) 6,11 24.以下程序的运行结果是 (24) 。

int f(int a,int b)

{ int k=0,x=a;

while(x) { k=k*10+x%10; x/=10;}

if(k==b) return 1;

else return 0;

}

main()

{ int a=123,b=321,c=456,d=345,x,y;

x=f(a,b);

y=f(c,d);

p rintf("\n %d,%d ",x,y);

}A) 0,0 B) 0,1 C) 1,0 D)1,1

25.假定二进制文件f1.dat中分别存放了2,3,4,5,6五个整数,则以下程序的运行结果

是 (25) 。

#include “stdio.h”

main()

{ int a,b; FILE *fp;

fp=fopen(“f1.dat”, “rb”);

}

fseek ( fp, sizeof(int), SEEK_SET) ;

fread ( &a, sizeof(int), 1, fp );

fseek ( fp, sizeof(int), SEEK_CUR) ;

fread ( &b, sizeof(int), 1, fp );

fclose(fp);

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

}

A) 2,3 B) 2,4 C) 3,4 D) 3,5

三、程序填充题(每空3分,共30分)

选择适当的内容填在以下各程序的下划线处,以使程序完整。

●将两个有序的数组合并到另一个数组中,要求合并后仍有序。

main()

{ int i=0,m=5,a[5]={1,3,7,9,13};

int j=0,n=6,b[6]={2,4,8,16,20,24};

int k=0,c[11];

while( i+j

{ if( i>=m ) c[k++]= (26) ;

else if( j>=n ) c[k++]= (27) ;

else if( (28) ) c[k++]=a[i++];

else c[k++]=b[j++];

}

for(i=0;i

}

(26) A) a[i++] B) a[j++] C) b[i++] D) b[j++]

(27) A) a[i++] B) a[j++] C) b[i++] D) b[j++]

(28) A) i==m B) j==n C) a[i]

●用折半查找法查找整数k在数列a中的位置(数列a中的数按从小到大有序),若a

中有与k相同的数则返回其位置(下标),否则返回-1。

int search (int a[], int n , int k)

{ int i=0, j=n–1, m;

while (i<=j) (29) A)i=m-1 B) i=m+1 C) j=m-1

D)j= m+1

{ m= (i+j)/2; (30) A} i=m-1 B) i=m+1 C)j=m-1

D)j=m+1

if (a[m]k) (30) ; C} return i D) return j else (31) ;

}

return (–1);}

●判断一个数是否为水鲜花数的函数,是水鲜花数时返回1,否则返回0。

所谓水鲜花数,它是一个三位数,该数正好等于其各位数字的立方和。

int flower(int m)

{ int i,s=m,k=m;

if(m<100 || m>999) return 0;

while ( k ) { (32) ; s-=i*i*i; k/=10; }

return ( (33) ) ;

}

(32) A) i=k/100 B) i=k/10%10 C) i=k/10 D) i=k%10

(33) A) s==m?1:0 B) s!=0 C) !s D) s

●从键盘输入任意个考试成绩,输出高分前10个数。

void insert(int *a,int n,int score)

{ int i,j;

if(score

for(i=0;ia[i]) break;

for( (34) ) a[j]=a[j-1];

a[i]=score;

}

main()

{ int a[10],i,score;

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

while(1)

{ scanf("%d",&score);

if(score<0) break;

insert ( (35) );

}

printf("\n");

for(i=0;i<10;i++) printf("%5d",a[i]);

}

(34) A) j=i+1; ji;j-- C) j=n-1;j>=i;j-- D) j=i; j

j++

(35) A) a[10], n,score B) a,n,score C)a,10,score

D)a[10],10,sco re

C程序设计试题(B卷)答案

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

CBDBC

ACBCD

二、程序阅读题 (每题3分,最后一题4分,共40分)

BDDCB

DCBDB

三、程序填充题(每空3分,共30分)

BBCDD

CCB

大学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语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 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、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

2020最新C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020最新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语言考试试题

试题 课程名称C语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 main( ) { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是( )。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 13.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main( ) { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%f\n",n,ave);

c语言考试题

高三11月份月考C语言考试题 一、选择题:(30分) 1.在每一个C程序中都必须包含一个名为()的函数. A.main B. MAIN C. name D. function 2.以下叙述正确的是(). A.C程序中注释部分可以出现在程序中任意合适的地方 B.花括号{和}只能作为函数体的定界符 C.构成C程序的基本单位是函数, 所有函数名都可以由用户命名 D.分号是C语句之间的分隔符, 不是语句的一部分 3.若有定义int a; 变量a占用内存的2个字节, 则a所能存储数据的最 小值是(). A.0 B. -32767 C. -32768 D. -65535 4.在下列4组八进制和十六进制数中, 全部正确的是(). A.123 089 0x23af 0xbd B. 0a21 056 0xabc 0x789 C.010 052 0xdfa 0xff14 D. 0x123 0283 0xabc 0x25f 5. 设有定义”int x=8,y,z;”执行”y=z=x++; x=y==z;”后,变量x的值是() A. 0 B. 1 C. 8 D. 9 6. 能正确表示关系33 and x<5 B. 33||X<5 D. x>3&&x<5 7. 下面表达式正确的是() A. a+b=5 B. 56=a11 C. 5.6+6.2%3.1 D. a=5,b=6,c=7 8. 已知a为整型变量,表达式a!=0真假情况不同的表达式是() A. a>0||a<0 B. a C. !a==0 D. !a 9. 下面程序的输出结果是() main() { int x=’\23’; printf(“%d\n”,--x); } A.19 B. 18 C. 23 D. 24 10. 以下运算符优先级别最低的是() A. ++ B. , C. ?: D. / 11. 下面程序如果在运行时输入18,18,那么b的值是() main() { int a,b; scanf(“%d,%o”,&a,&b); b+=a; printf(“%d”,b); } A. 36 B. 34 C. 输入错误,b的值不确定 D. 18 12. 有以下程序,执行后输出的结果是() main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(“%d”,d); } A. 2 B. 无输出 C. 5 D. 有语法错误,编译不能通过 13. 执行下面程序段的输出结果是()。 int x=4, y=-55; if(x>0) if(y>0) printf(“AA”); else printf(“BB”); A. AA B. BB C. 无输出 D. 程序错误 14.以下程序的输出结果是()。 main() { if(2==3-1<=8!=4*3) printf(“true\n”); else printf(“false”); } A. true B. false C. T D. F 15.选择i正确的运行结果是() int i=10; switch(i) { case 9: i+=1; break; case 10: i+=1; break; case 11: i+=1; default: i+=1; } A.10 B. 11 C. 12 D. 13 二、填空题(30分) 1.设变量num和变量x的数据类型均为float, num的值为 2.5, 则执行 语句x=(int)num+3.2E-1;后, num的值为______,x为_______。 2.C语言规定: 在每一个字符串结尾加上个______,以便根据此判断是否 结束。 3.当a=6,x=6.8,b=4时,表达式x+a%7(int)x+8/3+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语言考试题及答案

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

c语言考试试题

一、选择题 以下表达式中非法的是_______ A. 0<=x<=10 B. i=j==0 C. (char)(65+3) D. x+1=x+1 设有int x=10,y=10; 表达式x&&x-y || x+y 的结果为_______ A.20 B. 10 C. 0 D. 1 若有int x=3;执行语句if(x) x=x+3;else x=x-3; 后,变量x的值为_____ A. 3 B. 6 C. 0 D. 该语句有语法错误 若有定义int x=3; 执行语句while(x>=0) x-- ; 后,变量x的值为_______ A. 3 B. 0 C. -1 D. 2 若有定义int x=3若有定义char st[20]= "abc\ndef"; 则函数strlen(st)的值为_______ A.20 B.8 C.9 D.7; 在函数调用语句fun((x1,x2),(x3,x4,x5))中的实参的个数是_______ A. 1 B. 2 C.3 D. 4 数组初始化为:int a[10]={1,3,5,7}; 则数组元素a[4]的值为_______ A. 0 B. 7 C. 不确定 D. 1 若有定义int x,*p; 能为变量p正确赋值的表达式为________ A. p=x B. p=*x C. p=&x D. *p=x 若有定义struct sk{int a;float b}data; int *p;若要使p指向data中的成员a,正确 的赋值语句为_______________ A.p=&a; B.p=data.a; C.p=&data.a; D.*p=data.a C语言程序语句的分割符,也就是一条语句的结束符是( )。 A.逗号 B.句号 C.分号 D.括号 字符型变量输入、输出的格式是( )。 A.%d b.%f C.%c d.%s 下面求梯形面积的C语句中变量a,b,h,s是float型,不正确的是( )。 a.s=1/2*(a+b)*h B.s=1.0/2*(a+b)*h C.s=1/2.0*(a+b)*h D.s=(a+b)*h/2 While和do/while二种循环语句可能的最少的循环次数分别是( )。 A.0次和0次 B.0次和1次 C.1次和0次 D.1次和1次 说明char a[10]中定义了( )。 A.a[1]至a[10]共10个变量 B.a[1]至a[9]共9个变量 C.a[0]至a[10]共11个变量 D.a[0]至a[9]共10个变量

c语言期末测试题(附答案)

** 课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个 正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。A)’a’&&’b’ B)a<=b C)((a>b)||(b

【】 A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 计算机技术基础试题第2页(共11页)

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++) { prin tf((x%2)"##%d":"**%d\n" ,x); } A) ##3 B)**3 C) **3 D)##3**4 **4##4##4**5 ##5 ##5**5 3 .在while (!x )语句中的!x与下面条件表达式等价的是:。 A)x!=0B)x==1 C)x!=1 D)x==0 4 .已知 structpoi nt { intx; inty; }; structrect { structpoi ntpt1; structpoi ntpt2; }; 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 ()

C语言考试题

〖第1题〗『填空』(1分) 已知 i=5;写出语句 a=--i; 执行后整型变量 a 的值是【1】. 答案: 1). 4 〖第2题〗『填空』(1分) 为了避免嵌套条件语句的二义性,C++语言规定else 与其前面最近的【1】语句配对. 答案: 1). if 〖第3题〗『填空』(1分) 若所用变量都已正确定义,请填写以下程序段的输出结果【1】. for(i=1;i<=5;i++); cout<<"OK"<b? a:b; return c; } void main() { int a=8; cout<z的值为【1】. 答案: 1). 1 〖第6题〗『填空』(1分) int x=2;z=++x+1; 则z的值为【1】. 答案: 1). 4 〖第7题〗『填空』(1分) int x=2,y=3,z=4; 则表达式x+(y>!z)的值为【1】. 答案: 1). 3 〖第8题〗『填空』(1分) 表达式18 && 53 的值是【1】. 答案: 1). 1 〖第9题〗『填空』(1分) 在C++程序中使用文件结束后要关闭文件,关闭文件 的函数名是【1】.

答案: 1). close 〖第10题〗『填空』(1分) 当一个函数无返回值时,函数的类型应定义为【1】 答案: 1). void 〖第11题〗『填空』(1分) 在C++程序中使用文件前打开文件,打开文件的函数名是【1】. 答案: 1). open 〖第12题〗『填空』(1分) 设x=2.5,a=7,y=4.7,算术表达式 x+a%3*(int)(x+y)%2/4的值为【1】. 答案: 1). 2.5 〖第13题〗『填空』(1分) 执行语句char str[81]="abcdef";后,字符串str结束标志存储在str[【1】] (在括号内填写下标值)中. 答案: 1). 6 〖第14题〗『填空』(1分) 执行下列语句后,b 的十进制值是【1】. int x=240,y=15,b; char z='A'; b=(( x && y ) && ( z < 'a' )); 答案: 1). 1 〖第15题〗『填空』(1分) cin.get()函数只能接收一个【1】. 答案: 1). 字符 〖第16题〗『填空』(1分) int x=2,y=3,z=4; 则表达式x+y>!z的值为【1】. 答案: 1). 1 〖第17题〗『填空』(1分) int x=y=z=2;x=y==z; 则x的值为【1】. 答案: 1). 1 〖第18题〗『填空』(1分) C++语言程序的三种基本结构是:顺序结构,选择结构,【1】结构. 答案: 1). 循环

大学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语言考试题库及答案

7、C 语言程序的基本单位是 A) 程序行B) 语句 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 _____ 14 、以下程序的输出结果是______ D ____ . #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } A) 10 10 B)99 C)910 D)109 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 码 {int x=023; printf("%d\n",--x); } A) 17 B) 18 11 、下面程序的输出的是 #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 23 D) 24 ____ C ___ 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) 函数D) 字符

C语言考试试题

c语言考试题(一) 一、单项选择题(每题2分,共20分) 1、以下选项中属于C语言的数据类型是() A.复数型B.逻辑型C.集合型D.双精度型 2、一个C程序的执行是从() A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束 3、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是()A.3 B.0C.-12D.9 4、若有char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是( )。 A.cd\0e B.'c''d' C.cd D.cd e 5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;则下列表达式不是4的是( )。 A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3] 6、以下有宏替换不正确的叙述( ). A.宏替换不占用运行时间B.宏名无类型 C.宏替换只是字符串替换D.宏名必须用大写字母表示

7、执行char str[10]=”Ch\nina”; strlen(str)的值是()A.5 B.6 C.7 D.9 8、下面程序的输出结果是:() #define POWER(x) (x*x) main() {int i=4; printf("%d",POWER(i-2)); } A. -9 B. -7 C. 5 D. -6 9、在定义int a[3][4][2];后,第10个元素是() A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1] 10、下面程序的输出结果是:() typedef struct {long x[2]; short y[4]; char z[8]; }MYTYPE; MYTYPE a; main() { printf("%d\n",sizeof(a));} A. 2 B. 8 C. 14 D. 24 二、填空题(每空1分,共11分) 1、字符串"A"在内存中占用的字节数为。 2、C语言中的标识符只能由字母、下划线和组成。

c语言考试题

fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()。 A、读或读写 B、追加 C、只写 D、答案B和C都正确 【参考答案】错误 A 【学生答案】 、 D 使用共用体变量,不可以()。 A、同时访问所有成员 B、进行动态管理 C、节省存储空间 D、简化程序设计 【参考答案】正确 A 【学生答案】 % A 设有如下定义:struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是()。 A、p=(struct sk*) ; B、*p=; C、p=&; D、p=&data,a; 【参考答案】错误 C \ 【学生答案】 B 以下程序段执行后输出的结果是( ). char str[ ]="ABCD",*p=str; printf("%d\n",*(p+4)); A、字符'D'的地址 B、0 C、不确定的值 D、68 【参考答案】错误 ^

B 【学生答案】 D 已定义char a[10];和char *p=a;,下面的赋值语句中正确的是( ). A、p="Turbo c"; B、a="Turbo c"; C、*p="Turbo c"; > D、a[10]="Turbo c"; 【参考答案】错误 A 【学生答案】 C 设有如下程序,请选择正确答案( )。 #include <> main() {int **k,*j,i=100; 》 j=&i, k=&j; printf("%d\n",**k); } A、运行错误 B、100 C、i的地址 D、j的地址 【参考答案】正确 B / 【学生答案】 B 以下叙述正确的是()。 A、可以把if定义为用户标识符,但不能把define定义为用户标识符 B、define和if都不能定义为用户标识符 C、可以把define定义为用户标识符,但不能把if定义为用户标识符 D、可以把define和if定义为用户标识符 【参考答案】正确 C ?

c语言笔试题(答案)

笔试题 一、填空题(每个空4分,共28分) 1)struct tagABC { char name[10]; char sex; long sno; float score[4]; }*pAbc;(四字节对齐) pAbc=NULL; 那么,执行pAbc+=2;之后pAbc的值为(64 ) 2)如下代码,最终value的值是(8) int *p1,*p2; int value; p1=(int*)0×400; p2=(int*)0×408; value = p2-p1; 3)如下代码,printf的结果为(2) #include〈stdio.h〉 #include〈string.h〉 void main(void) { char acNew[20]= “\\0\0”; printf(“%d\n”,strlen(acNew)); } 4) 有如下程序段,运行该程序的输出结果是(33) main () { int y=3,x=3,z=1; printf(“%d%d\n”,(++x,y++),z+2); } 5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAA { Unsigned char ucId:1; Unsigned char ucPara0:2; Unsigned char ucState:6; Unsigned char ucTail:4; Unsigned char ucAvail; Unsigned char unTail2:4;

Unsigned long ulData; }AAA_S 问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9)(12 ) 二、选择题(每题2分,共34分) 1)若有说明int(*p)[3];以下叙述正确的是( D ) A:p是指针数组 B:(*p)[3]和*p[3]等价 C:p是指向一维数组中任何一个元素的指针 D:p是指向含有3个整型元素的一维数组的指针 2)以下关于单元测试的描述,哪些是对的?(D) A:黑盒测试针对软件的功能,不考虑功能的实现细节; B:白盒测试针对源代码的测试,从程序功能的具体实现上找错; C:路径覆盖是黑盒测试的一种方法,编写测试用例使程序的每条语句都能走到; D:条件覆盖是百盒测试的一种方法, 编写测试用例使程序的每个判断的各种情况都能到3)以下可以用于任务间通信的有(ABCD) A:共享内存 B:信号量 C:消息队列和管道 D:socket调用 4)有关结构,以下哪些描述是对的?(BC) A:为了测试方便,尽量把一个结构的功能设计得多一些 B:不同结构间的关系不要过于复杂 C:结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中 D:结构中元素的布局与排列顺序可以随意设计 5)关于强制类型转化,下面说法正确的是(ABCD) A:当目的结构的空间大于源结构的空间时,要重点关注内存访问超过源结构范围的情形,可能越界; B:当目的结构的空间小于源结构的空间时,要重点关注对目的结构赋值不能完全覆盖源结构范围的情形,可能遗漏; C:结构体之间的强制类型转换时,其成员字段的数据类型的差异也是要格外小心的; D:与结构体之间的强制类型转换相比,基本数据结构的强制类型转换更容易出现上面描述的情况,使用的时候,一定要慎之又慎; 6)正确的使用assert,软件系统不会对人为原因造成的错误进行处理。它有利于(A BCD) A:缺陷及早暴露,加快定位进程; B:明确表示函数接口或算法逻辑的校验关系,增强软件代码的可读性; C:去除不必要的容错处理,简化代码处理流程,降低软件处理复杂度; D:强化编程接口之间的契约,增强软件的可维护性; 7)对于循环体的执行效率,下述说法正确的是(ABCD ) A:循环体内工作量最小化 B:在多重循环中,应将最忙的循环放在最内层 C:尽量减少循环的嵌套层次 D:避免在循环体内做无谓的判断语句,将循环语句置于判读语句的代码块之中 8)设数组a[5]={10,20,30,40,50};已知指针p指向a[1];则表达式*++p的值是(A)

相关文档