文档库 最新最全的文档下载
当前位置:文档库 › c语言期末考试试卷a答案

c语言期末考试试卷a答案

北京师范大学2021~2021学年第2 学期期末考试试卷〔A卷〕

课程名称:程序设计语言〔C语言〕任课教师姓名:于福生刘玉铭卷面总分:100 分考试时长:100 分钟考试类别:闭卷院〔系〕:专业:年级:

姓名:学号:

阅卷教师〔签字〕:

一、判断题〔正确的划√,错误的划×〕〔每题1分,共10分)

1.逗号表达式的值是包含于其中的最后一个表达式的值;【】

2.函数内的局部变量将屏蔽掉与其重名的全局变量;【】

3.全局变量的作用域是所在的整个源程序;【】

4.C语言对文本文件和二进制文件均采用“缓冲文件系统〞;【】

5.多种类型变量组成的表达式求值时进行类型的自动转换;【】

6.二维数组初始化时列规模可以省略不写;【】

7.数组名作函数参数,实参数组和形参数组大小可不同,但类型须相同【】

8.continue语句和break语句都可以用于改变switch语句的执行流程【】

9.static型局部变量的作用域和全局变量的作用域一样;【】

10.C语言的所有函数之间可以相互调用【】

二、单项选择题(20×2=40分)

1.可作为变量名的字符序列是【】

A) static B) INT

C) #ptr_1t D) 123

2.假设a、b为int类型,值分别为3,4,那么对a+=a/=2,b*=b-=2求值后,a、b的

值分别是【】

A) 4, 4 B) 2, 8

C) 2, 4 D) 4, 8

3.设int b, a; float c;c=(float)a+b; 那么(float)的作用是【】

A) 使变量a的类型发生改变B) 使变量a,b的类型发生改变

C) 使变量a的值的类型发生改变D) 使变量a,b的值的类型发生改变

4.如果有说明:int a[6],*p=a;不能读入a[1]的语句是【】

A〕scanf(“%d〞,++a); B〕scanf(“%d〞,a+1);

C〕scanf(“%d〞,++p); D〕scanf(“%d〞,p+1);

5.程序段

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

6.对于函数int sub(float x, int y){return(x>y?x+y:x-y);},语句printf(“%d〞,sub(3.5, 3));

的执行结果是【】

A〕6.5

C〕6 D〕7

7.char a[]=〞abcd〞;printf(“%d,%d〞,sizeof(a),strlen(a));的运行结果是【】

A) 4,4 B) 5,5

C) 4,5 D) 5,4

8.下面陈述正确的选项是【】

A〕全局变量的作用域是所在的整个源程序

B〕任何两个函数之间可以相互调用

C〕逻辑表达式的求值采用局部求值规那么

D〕对某变量实施强制类型转换运算后,变量的类型随之发生变化

9.程序段

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12},*p=&a[1][1], (*q)[4]=&a[1];

printf("%d,%d",*(p+3),*(*(q+1)+1));

的输出结果是【】

A) 8, 6 B) 8, 10

C) 9, 6 D) 9, 10

10.设a为int型变量,那么执行语句:a=-1; a++&&a++&&a++;后,a的值【】

A) -1 B) 0

C) 1 D) 2

11.有说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 那么数值为5的表达式是【】

A) *p+5 B) *(p+4)

C) *p+=5 D) p+4

12.程序段int k = -2; do k++; while (!(k = 0)); 中while循环执行的次数是【】

A〕无限次B〕2

C〕0D〕1

13.从键盘读入含空格的字符串时,应该使用函数【】

A) scanf( ) B) gets( )

C) getchar( ) D) getch( )

14.设有说明int a=1,b=2; 定义函数void swap(int *p, int *q);那么通过函数调用语句

swap(&a,&b);能把变量a,b的值交换过来的函数体是【】

A〕{int *x; x=p;p=q;q=x;} B〕{int x; x=*p;*p=*q;*q=x;}

C〕{int x=*p,y=*q,z=x;x=y;y=z;} D〕{int *x; *x=*p;*p=*q;*q=x;}

15.判断字符串s是否大于字符串t应使用【】

A〕if〔s>t〕B〕if〔strcmp〔s,t〕>0〕

C〕if (strcmp (t,s) >0 ) D〕if (strcmp (s,t) )

16.程序int sub〔int a[10]〕{ return sizeof(a);} void main() { int a[10];printf(“%d,%d〞

sizeof(a),sub(a));}的运行结果是【】

A) 20,20

B) 2,2

C) 20,2 D) 2,20

17. 对于函数⎪⎩

⎨⎧<-=>=010001x x x y ,以下程序段中不能对y 正确求值的是【 】

A 〕 if (x > 0) y = 1; else if (x == 0) y = 0; else y =-1;

B 〕 y = 0; if (x > 0) y = 1; else if (x < 0) y = -1;

C 〕 y = 0; if (x >= 0); if (x > 0) y = 1; else y = -1;

D 〕 f (x >= 0) if (x > 0) y = 1; else y = 0; else y = -1;

18. 假设有以下定义和说明:

struct std { char num[6]; char name[8]; float mark[4]; }a[30]; FILE *fp;

不能将数组a 写入二进制文件fp 的语句是【 】 A 〕 f or(i = 0; i < 30; i++) fwrite(&a[i], sizeof(struct std), 1, fp); B 〕 f or(i = 0; i < 30; i++) fwrite(a + i, sizeof(struct std ), 1, fp); C 〕 f write(a, sizeof(struct std), 30, fp); D 〕 f or(i = 0; i < 30; i++) fwrite(a[i], sizeof(struct std ), 1, fp);

19. 设有说明:struct AA{ int *a,b} *s ;正确调用函数scanf 的实在参数为【 】

A) 〔“%d 〞, &*s.a 〕 B) 〔“%d 〞, *s.a 〕 C) 〔“%d 〞, &s->a 〕 D) 〔“%d 〞, s->a)

20. int a=12; 语句fprintf(f,“%6d 〞, a);和fwrite(&a,sizeof(a),1,g);导致文件f 和g 在

大小上的增加量分别【 】 A 〕2字节,2字节 B 〕6字节,6字节 C 〕6字节,2字节 D 〕2字节,6字节

三、阅读程序、写出程序的执行结果(任选5题,5×4=20分)

1.#include

void main()

{

char a[ ]="language", b[ ]="123";

char *p=a ,*q=b;

while(*p++=*q++) p++;

puts(a);

}

2.#include

int sub( int n )

{

int a;

if( n == 1) return 0;

a = n + sub( n-1 );

return( a );

}

void main( )

{

int n = 6;

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

}

3.#include

void swap(int *p1, int p2)

{

int temp;

temp=*p1;

*p1=p2;

p2=temp;

}

void main( )

{

int x=20, y=15;

if( x>y) swap(&x, y);

printf("%d,%d", x,y);

}

4.#include

void main()

{

int a[3][4]={{3,2,2,3},{4,5,6,4},{-2,9,2,-2}};

int i, j, s=1;

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

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

if(i == 3-j) s*=a[i][j];

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

}

5.#include

void main()

{

int i=13, s=0, t;

while(t=i--)

{

if(!(t%3))continue;

s+=t;

}

printf("%d",s);

}

6.# include

int sub(int m)

{

static int s=1;

if(m==1) return(1);

return(m*sub(m/++s));

}

void main()

{

printf("%d",sub(6));

}

四、 编程题(任选两题2×15=30分)

1. 编程计算:n

s n 1)1(....4131211--+-+-=,直到最后一项的绝对值小于。

#include

void main() {

float t, s; int n, f;

n=1, s=0, f=1; do{

t = 1.0/n; s += f*t;

f *= -1; n++;

}while(t > 0.001); printf("%f\n", s); }

2.二进制文件“data.old〞中有假设干整数,编程对这些整数从小到大排序,排序结果存储到二进制文件“data.new〞中。〔假定系统中整数占2个字节〕。

#include

#include

void main()

{

int *a, t, n, i, j;

FILE *fin, *fout;

if( (fin=fopen("data.old", "r")) == NULL)

{ printf("data.old fail\n"); return; }

if( (fout=fopen("data.new", "w")) == NULL)

{ printf("data.new fail\n"); return; }

for(n=0; ; n++)

{ fread(&t, sizeof(int), 1, fin);

if(feof(fin)) break;

}

a = (int*)malloc(sizeof(int)*n);

rewind(fin);

fread(a, sizeof(int), n, fin);

for(i=0; i

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

printf("\n");

for(i=0; i

for(j=0; j

if(a[j] > a[j+1])

{ t = a[j]; a[j] = a[j+1]; a[j+1] = t;}

fwrite(a, sizeof(int), n, fout);

for(i=0; i

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

printf("\n");

fclose(fin);

fclose(fout);

}

A ABC ABCDE ………… ABC……XY

3.编程打印左边的图形。〔第1行1个字母,第2行3个字母,……,每一行比前一行多2个字母〕

/////// 1

#include void main() {

char *s[13] = {

" A", " ABC", " ABCDE", " ABCDEFG", " ABCDEFGHI", " ABCDEFGHIJK", " ABCDEFGHIJKLM", " ABCDEFGHIJKLMNO", " ABCDEFGHIJKLMNOPQ", " ABCDEFGHIJKLMNOPQRS", " ABCDEFGHIJKLMNOPQRSTU", " ABCDEFGHIJKLMNOPQRSTUVW", "ABCDEFGHIJKLMNOPQRSTUVWXY", }; int i;

for(i=0; i<13; i++) puts(s[i]); }

//////// 2

#include void main() {

char ch; int i, j;

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

for(j=0; j<24-2*i; j++) putchar(' '); ch = 'A';

for(; j<25; j++) putchar(ch++); putchar('\n'); } }

c语言期末考试试卷a答案

北京师范大学2021~2021学年第2 学期期末考试试卷〔A卷〕 课程名称:程序设计语言〔C语言〕任课教师姓名:于福生刘玉铭卷面总分:100 分考试时长:100 分钟考试类别:闭卷院〔系〕:专业:年级: 姓名:学号: 阅卷教师〔签字〕: 一、判断题〔正确的划√,错误的划×〕〔每题1分,共10分) 1.逗号表达式的值是包含于其中的最后一个表达式的值;【】 2.函数内的局部变量将屏蔽掉与其重名的全局变量;【】 3.全局变量的作用域是所在的整个源程序;【】 4.C语言对文本文件和二进制文件均采用“缓冲文件系统〞;【】 5.多种类型变量组成的表达式求值时进行类型的自动转换;【】 6.二维数组初始化时列规模可以省略不写;【】 7.数组名作函数参数,实参数组和形参数组大小可不同,但类型须相同【】 8.continue语句和break语句都可以用于改变switch语句的执行流程【】 9.static型局部变量的作用域和全局变量的作用域一样;【】 10.C语言的所有函数之间可以相互调用【】

二、单项选择题(20×2=40分) 1.可作为变量名的字符序列是【】 A) static B) INT C) #ptr_1t D) 123 2.假设a、b为int类型,值分别为3,4,那么对a+=a/=2,b*=b-=2求值后,a、b的 值分别是【】 A) 4, 4 B) 2, 8 C) 2, 4 D) 4, 8 3.设int b, a; float c;c=(float)a+b; 那么(float)的作用是【】 A) 使变量a的类型发生改变B) 使变量a,b的类型发生改变 C) 使变量a的值的类型发生改变D) 使变量a,b的值的类型发生改变 4.如果有说明:int a[6],*p=a;不能读入a[1]的语句是【】 A〕scanf(“%d〞,++a); B〕scanf(“%d〞,a+1); C〕scanf(“%d〞,++p); D〕scanf(“%d〞,p+1); 5.程序段 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 6.对于函数int sub(float x, int y){return(x>y?x+y:x-y);},语句printf(“%d〞,sub(3.5, 3)); 的执行结果是【】 A〕6.5 C〕6 D〕7

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

一、判断题(每小题1分,共10个小题,共10分) 1、printf可以作为变量名使用。( ) 2、在标准C中,“=”是判断两个数是否相等.( ) 3、C语言中实参到形参传递是双向的.() 4、"a"是合法的字符串常量。() 5、C语言中,以0代表“假”,以非零代表“真”.( ) 6、二维数组可以这样定义:int a[3][4].() 7、设“char a[10]="abc””;则strlen(a)的值为3。( ) 8、一个C语言源程序文件中有且只能有一个主函数。( ) 9、不能用"r”方式打开一个并不存在的文本文件。() 10、打开文件使用fclose函数。() 二、选择题(每小题2分,共40个小题,共80分) 1、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( ) 【A】函数调用可以作为一个函数的形参【B】函数调用可以作为一个函数的实参【C】函数调用可以出现在表达式中【D】函数调用可以作为独立的语句存在2、以下程序运行后的输出结果是( ),︹符号表示空格。 【 3、若运行时给变量x输入12,则以下程序的运行结果是( ) 【 4、以下说法正确的是( ) 【A】C语言程序总是从第一个的函数开始执行

【B】在C语言程序中,要调用函数必须在main()函数中定义 【C】C语言程序中的main()函数必须放在程序的开始部分 【D】C语言程序总是从main()函数开始执行 5、若执行下述程序时,若从键盘输入6和8时,结果为( ) 【 6、以下叙述中正确的是() 【A】可以在一个函数中定义另一个函数 【B】构成C程序的基本单位是函数 【C】main()函数必须放在其他函数之前 【D】所有被调用的函数一定要在调用之前进行定义 7、下列程序段的输出结果是() 【 【C】1234,123.5,12345。5 【D】1234,123。4,1234.5 8、已知字母A的ASCII码为十进制数65,且C1为字符型变量,则执行语句C1=’A’+’6'—‘3’后C1的值为() 【A】B 【B】C 【C】d 【D】D 9、设有以下程序段( ) 【 【C】程序段中的控制表达式是非法的【D】程序段执行无限次 10、执行下面的程序段后,变量k中的值为()

《C语言程序设计》期末考试试卷(A卷)

《C语言程序设计》期末考试试卷(A卷) 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( B ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( D ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( B ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( B ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( C ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( D )

A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( A ) 。 #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,则正确的赋值语句是( D ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( A ) #include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( D ) #include

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

c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1.一个C程序的执行是从( )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.下列选项中,不能用作标识符的是( )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( )。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; 4.设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是()。 A) a++; B) b++ C) c++; D) d++; 5.以下4个选项中,不能作为一条C语句的是( )。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。 A) p=1; B) *q=2; C) q=p; D) *p=5; 8.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。

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

c语言期末测试题(附答案) A)自动存储类别B)静态存储类别C)寄存器存储类别D)外部存储类别 10、以下关于指针的描述中,错误的是【】。A)指针变量必须先定义再使用B)指针变量存放的是地址C)指针变量可以指向任何类型的变量D)指针变量的值可以直接进行运算 11、以下程序的输出结果是【】。void main() int i=3,j=4,k=5,m=5,n=6; if(i>XXX

12、以下关于结构体的描述中,错误的是【】。A)结构体是由不同类型的变量组成的B)结构体变量的大小等于其各成员变量大小之和C)结构体变量的地址等于其第一个成员变量的地址D)结构体变量的成员变量可以是结构体类型 13、以下函数的功能是【】。void swap(int*a,int*b) int temp; temp=*a; a=*b; b=temp; A)交换两个整型变量的值B)求两个整型变量的差C)比较两个整型变量的大小D)求两个整型变量的和 14、以下程序的输出结果是【】。void main() char a[10]=“hello”; char b[10]=“world”; strcat(a,b); printf(“%s”,a); A)helloworldB)hello worldC)worldhelloD)hello 15、以下程序的输出结果是【】。void main()

c语言期末试题及答案

c语言期末试题及答案 一、选择题 1.下列C语言中的数据类型中,占用字节最小的是: A. int B. float C. char D. double 答案:C 2.在C语言中,用于执行循环的关键字是: A. for B. while C. do D. switch 答案:A、B 3.以下哪个运算符可以用于判断两个表达式的值是否相等? A. == B. = C. !=

D. > 答案:A 4.C语言中表示注释的符号是: A. // B. /* C. # D. -- 答案:B 5.以下关于数组的说法正确的是: A. 数组的大小是固定的,不能改变 B. 数组中的所有元素的类型必须相同 C. 数组的下标从0开始 D. 数组的索引可以是负数 答案:B、C 二、填空题 1.下面哪个函数用于从标准输入读取一个字符? __________ 答案:getchar()

2.在C语言中,变量x的地址可以用__________表示。 答案:&x 3.以下代码中,num的值为__________: ```c int num; printf("%d", num); ``` 答案:未定义,可能是任意值。 三、编程题 1.编写一个C语言程序,实现求斐波那契数列第n个数的功能。其中,斐波那契数列的定义如下: F(1) = 1 F(2) = 1 F(n) = F(n-1) + F(n-2) ```c #include int fibonacci(int n) { if (n == 1 || n == 2) { return 1;

} else { return fibonacci(n-1) + fibonacci(n-2); } } int main() { int n; printf("请输入n的值:"); scanf("%d", &n); printf("斐波那契数列的第%d个数是:%d\n", n, fibonacci(n)); return 0; } ``` 以上代码会通过递归的方式计算斐波那契数列第n个数的值。 四、简答题 1.什么是指针?请简要解释。 答:指针是一个变量,它存储了一个内存地址。通过指针,我们可以访问或修改存储在该内存地址中的值。指针在C语言中非常重要,可以用于动态内存分配、数组操作、函数传递等。 2.typedef关键字的作用是什么?

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

C语言程序设计期末考试试题及答案 一、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将正确答案的选项填入答题卡中的相应位置中。每小题3分,共48分) 1、以下合法的标识符为() A.3ab B.int C.A-4 D.Main 2、已知int a=5; 则执行a+=a-=a*a;语句后,a的值为 A)0 B)-40 C)10 D)-60 3、如果要把数值327存入变量a中,a不可以定义成什么类型() A.int B.char C.long D.float 4、以十六位字长为基准,十进制数-123,则其机内码表示为()。 A)1000000000000100 B)1000000001111010 C)-000000001111011 D)1111111110000101 5、执行下面程序段后,输出结果是______. int a; int b=65536; a=b; printf("%d\n",a); A) 65536 B) 0 C) -1 D) 1 6 若变量已正确定义并赋值,以下符合C语言语法的表达式是()。A)a:=b+1 B)a=b=c+2 C)int 11.5%3 D)a=a-9=c 7以下选项中不能用作C程序合法常量的是 A)1,234 B)'\123' C)123 D)0123 8下面程序段的运行结果是。 int n=0; while(n++<=2); printf("%d",n); A)2 B)3 C)4 D)语法错误 9下面程序的执行结果是()

main() {int x=017; printf("%d",x--);} A.14 B.15 C.16 D.17 10 已知int i,a;执行语句i=(a=4,a++,--a,a+4,a+5,++a);后,变量i的值为 A)2 B)3 C)4 D)5 11若有语句:int a,b; scanf("%d;%d",&a,&b); 如果把整数4赋给a,把整数5赋给b,应该输入()。 A.4 5 B.4,5 C.45 D. 4;5 12 C语言中,不合法的整型常量是() A、88 B、018 C、-0xabcd D、2e5 13设有int x=12.5;则表达式(x=x++*1/2.5)的值是()。A)4 B)5 C)3 D)4.8 14若变量a,i已正确定义,且i己正确赋值,合法的C语言语句是() A.a=int(i); B. a==0 C. ++i; D. a=a++=2; 15 C语言中,以下语句能跳过循环体中未执行的语句,接着执行本循环下一次迭代的语句是() A.空语句 B.break语句 C.return语句D.continue语句16 以下程序的输出结果是 main() { int a=31,b=21; printf("%d\n",--a+b,--b+a);} A)50 B)51 C)52 D)53 二、阅读程序,写出运行结果(本大题共5小题,每小题4分,共

C语言期末考试题(含答案解析]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

2020-2021《C语言》期末课程考试试卷A1(含答案)

2020-2021《C语言》期末课程考试试卷A1 适用专业:考试日期: 考试时间:120分钟考试形式:闭卷试卷总分:100分 一、选择题;(每题2.5分,共47分) 1.与十六进制数200等值的十进制数为() A) 256 B) 512 C) 1024 D) 2048 2.以下选项中可作为C语言合法常量的是( ) A)-80. B)-080 C)-8e1.0 D)-80.0e 3.数字字符0的ASCII值为48,若有以下程序 main() { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是( ) A)3,2 B)50,2 C)2,2 D)2,50 4.有以下程序 main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是( ) A)12353514 B)12353513 C)12343514 D)12343513 5. 有以下程序 main() { int a,b,d=25; a=d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是( ) A)6,1 B)2,1 C)6,0 D)2,0 6.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a

c语言期末复习试题附答案

试卷编号:1120所属语言:C语言 试卷方案:C语言期末考试试卷总分:100分 共有题型:4种一、单项选择共30题(共计60分) 第1题(分)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A ). A:k++B:k+=1 C:++kD:k+1 第2题(分)已知int i=5,执行语句i+=++i后,i的值是(C). A:10B:ll C:12D:A、B、C都不对 第3题(分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. ttinclude <>void main() /* Beginning */{ int r;float s; scanf (〃%d〃,&r); s=p*r*r; printf (〃s=%f\n〃,s);出错的原因是(D). A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型 C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量 第4题(分)〃\\\〃 ABC\〃 \\〃的长度是(B ). A:llB:7 C:5D:3 第5题(分)已知int j, i=l执行语句j=-i++;后,j的值是(C ). A:1B:2

串中的内容为“abcdefg”时,c 所指数组中的内容应该为 “lg2f3e4dcba” 。 */ttinclude <> #include <>#include <> void fun ( char char *b, char *c ) int i , j; char ch; i = 0; j 二 strlen(b)-l; /**********FOUND**********/ ch = b [ i]; b[j] = ch; i++; j —; /**********FOUND**********/ while ( *a &&*b )//此处&&改为| | (逻辑或) if ()*c =*a; c++;/**********FOUND**********/ a+; ) if ( *b )*c 二*b; c++;b++; *c = 0;main() char sl[100],s2[100],t[200]; clrscr (); printf (,z \nEnter si string : 〃); scanf (〃如〃,si); printf (,z \nEnter s2 string : 〃); scanf (〃%s 〃, s2); fun( si, s2, t ); printf (/z \nThe result is : %s\n 〃,t );i j 四、程序设计共1题(共计20分)第1题(分) /* 【程序设计】功能:判断一个整数w 的各位数字平方之和能否被5 整除, 可以被5整除则返回1,否则返回0。 while ( i > j )〃此处 > 改为< b[i] b[i] b[j]; //止匕处a++

C语言期末考试试卷及答案

C语言期末考试试卷(A) 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( A ) A、 C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、 C语言可以直接对硬件进行操作 D、 C语言移植性好 2、以下不正确的C语言标识符是( D ) A、 ABC B、 abc C、 a_bc D、 ab.c 3、一个C语言程序是由( B ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的 是( A ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( C ) A、 int B、 float C、 double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( C )

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

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1) 1. 以下叙述中正确的是()。 A. C语言比其他语言高级 B. C语言可以不用编译就能被计算机识别执行 C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D. C语言出现的最晚,具有其他语言的一切优点 2. 以下叙述中正确的是()。 A.构成C程序的基本单位是函数 B.可在一个函数中定义另一个函数 C. main函数必须放在其他函数之前 D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。 A. C语言程序总是从第一个函数开始执行 B.在C语言程序中,要调用函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 4. 以下有关for循环的正确描述是()。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 5. 对下面程序段的描述,正确的是()。 x=-1; do {x=x*x;}while(!x); A.是死循环 B. 循环执行一次 C. 循环执行两次 D. 有语法错误 6. 以下有关C语言数组说法正确的是()。 A.数组元素的数据类型可以不一致 B.数组元素的个数可以不确定,允许随机变动 C.可以使用动态内存分配技术,定义元素个数可变的数组 D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数 7.以下数组定义正确的是()。 A. int a(20); B. int a[ ]={1,2,5,7,0}; C. int a[n]; D. int a[2]={1,2,4,6}; 8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。 A. b[0][9] B. b[2,3] C. b(1)(5) D. b[10] [0] 9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。 A.0 B.不定 C. 6 D. 7 10.以下叙述中不正确的是( )。 A.字符数组中可以存放字符串 B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行整体输入、输出 D.不能通过“=”对字符型数组进行整体赋值 11.已知char d[ ]={”543210”};,则数组d的长度是( )。 A.5 B.6 C. 7 D. 8 12.已知char s3[ ]=”China”;,则下列程序段的输出结果是()。 printf(“%d”,sizeof(s3)); A.5 B. 6 C. 7 D.8

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

C 语言程序设计期末考试卷及答案 一、单项选择题。从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内( 每小题1分,共计30分)。 1.一个C 语言程序的执行是从( )。 A )本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 B )本程序的main 函数开始,到main 函数结束 C )本程序的main 函数开始,到本程序文件的最后一个函数结束 D )本程序文件的第一个函数开始,到本程序的main 函数结束 2.下列选项中不属于...C 语言关键字的是( ) 。 A )switch B )printf C )default D )case 3.设有语句 int a = 4; ,则执行了语句 a += a -= a * a; 后,变量a 的值是( )。 A )24 B ) -24 C )4 D )16 4.已知int i;float d;,则正确的表达式是( )。 A )(int d) B )int(d)%i C )(int)d%i D )int(d%i) 5.已知int i,a;,执行语句i=(a=3*9,a/5),a+11; 后,变量i 的值是( )。 A )5 B )16 C )27 D )38 6.下列选项中合法的字符型常量是( )。 A )"a" B )'\n' C )"\n" D )a 7.下面程序的运行结果是( )。 #include void main( ) { int k = 15; printf("k = %d,k = %o,k = %x\n",k,k,k); } A )k = 15,k = 15,k = 15 B )k = 15,k = 17,k = 17 C )k = 15,k = 017,k = 0xf D )k = 15,k = 17,k = f 8.已知a,b,c 为int 类型,执行语句:scanf ("%d%d%d",&a,&b,&c );使得a 为10,b 为20,c 为30,以下不正确... 的输入形式是( )。 A )10 B )10 C )10,20,30 D )10 20 20 20 30 30 30 9.已知int x=1,y=2,z=3;,执行下列程序段后,输出的结果是( )。 if(x>y) z=x;x=y;y=z; printf("%d,%d,%d",x,y,z); A )1,2,3 B )2,3,3 C )2,3,1 D )2,3,2 10.若变量c 为char 类型,能正确判断出c 为大写字母的表达式是( )。 A )'A'<=c<='Z' B )('A'<=c)||(c<='Z') C )(A<=c)&&(c<=Z) D )('A'<=c)&&(c<='Z') 11.有以下程序段: int k=0; while(k=1) k++; while 循环执行的次数是( )。 ------------------------------------------ 第 ----------------------------2----------------------------装 ---------------------------------------线--------------------------------------------- 班级 姓名 学号 ------------------------------------------第 ----------------------------1----------------------------装

C语言期末考试题(含答案)

C语言期末考试题(含答案) 《C语言程序设计》期末试卷 一、单项选择题(10x2’=20’)1、以下叙述正确的是()A)C语言的源程序不必通过编译就可以直接运行。B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。C) C语言源程序经编译形成的二进制代码可以直接运行。D)C 语言中的函数不可以单独进行编译。2、一个C语言的源程序中()A)必须有一个主函数B)可能有多个主函数C)必须有除主函数外其它函数D)可以没有主函数3、以下不能定义为用户标识符的是()A)scanfB)VoidC)_3comD)int4、若以下选项中的变量已正确定义,则正确的赋值语句是()A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3; 15、设有定义:floata=2,b=4,h=3;以下C语言表达式中与代数式(a b)*h的计 2算结果不相符的是() . C)for、while、do-while D)if、for、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是()A) x!=0B) x==1C)x!=1D)x==08、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);}执行后的输出结果是()A)1,1,2B)2,2,1C)2,2,2D)2,2,39、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是()A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中奇数之和D)自然数1~10中偶数之和10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()

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

C程序设计期末考试习题(含答案) c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1.一个C程序的执行是从( )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.下列选项中,不能用作标识符的是( )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( )。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a D) float *a,b=&a 4.设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是()。 A) a++; B) b++ C) c++; D) d++; 5.以下4个选项中,不能作为一条C语句的是( )。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7.设有定义:int n=0,*p=&n,**q=&p则以下选项中,正确的赋值语句是( )。 A) p=1; B) *q=2; C) q=p; D) *p=5; 8.设有定义:int a,*pa=&a 以下scanf语句中能正确为变量a读入数据的是( )。 A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;

C语言期末考试试题及详细答案

选择练习题 1、C 语言中最简单的数据类型包括( B )。 A 、整型,实型,逻辑型 B 、整型,实型,字符型 C 、整型,字符型,逻辑型 D 、整型,实型,逻辑型,字符型 2、C 语言中,运算对象必须是整型数的运算符是(A )。 A 、% B 、/ C 、%和/ D 、* 3、为表示关系x <y <z ,应使用C 语言表达式( A )。 A 、(x <y)&&(y <z) B 、(x <y)AND (y <z) C 、(x <y <z) D 、(x <y) &(y <z) 4、C 语言程序的基本单位是( C )。 A 、程序行 B 、语句 C 、函数 D 、字符 5、C 语言的程序一行写不下时,可以( D )。 A 、用逗号换行 B 、用分号换行 C 、用回车符换行 D 、在任意一空格处换行 6、下述标识符中,( C )是合法的用户标识符。 A 、A& B B 、void C 、_student D 、ab* 7、在C 语言中,字符型数据在内存中以( B A 、补码 B 、ASCII 码 C 、反码 D 、原码 8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B )。 A 、auto B 、extern C 、static D 、Register 9、以下关于switch 语句和break 语句的描述中,只有(B A 、在switch 语句中必须使用break 语句 B 、在switch 语句中,可以根据需要使用或不使用break 语句 C 、break 语句只能用于switch 语句中 D 、break 语句是switch 语句的一部分 10、C 语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。 A 、地址传递 B 、值传递 C 、由实参传给形参,并由形参传回给实参 D 、由用户指定传递方式 11、下述C 语言转义符中( D )是非法的。 A 、'\b' B 、'\037' C 、'\0xf ' D 、'\'' 12、为了要计算s=10!(10的阶乘),则以下对s 的定义正确的是( D )。 A 、int s B 、unsigned s C 、short s D 、long s

相关文档