南昌航空大学C语言期末考试试卷
大学C语言期末考试试题(含答案)

第一章C语言概述1.1 选择题*1.1一个C程序的执行是从 A 。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。
但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。
如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。
*1.2以下叙述正确的是 C 。
A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。
因此,如果注释中存在错误,系统是不可能发现的。
另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。
1.3以下叙述不正确的是 D 。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。
C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。
1.4 C语言规定:在一个源程序中,main函数的位置 C 。
A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C*1.5一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。
C语言期末考试试题___南昌航空大学

C)scanf("%lf",p+6);
D)scanf("%lf",p[6]);
(15)有以下程序段
#include <stdio.h>
void main()
{…
while( getchar()!='\n');
…
}
以下叙述中正确的是
A)此 while 语句将无限循环
B)getchar()不可以出现在 while 语句的条件表达式中
}
程序运行后的输出结果是
A)0 B)3 C)7 D)8
(13)有以下程序
#include <stdio.h>
void main()
{ char b,c; int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
下面关于语句执行情况的叙述中正确的是
A)循环体执行两次
B)循环体执行一次
C)循环体一次也不执行
D)构成无限循环
(6)有以下程序
#include <stdio.h>
void main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
B)11 C)10
D)9
(12)有以下程序
#include <stdio.h>
void main()
(完整版)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;5、设有定义:float a=2,b=4,h=3;以下C 语⾔表达式中与代数式h b a *)(21 的计算结果不.相符的是() 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 、breakC )for 、while 、do-whileD )if 、for 、continue7.在while (!x )语句中的!x 与下⾯条件表达式等价的是()A) x!=0 B) x==1 C) x!=1 D) x==08、有以下程序:#includevoid 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、有以下程序:#includevoid 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的正确调⽤语句是()A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);⼆、填空题(10x2’=20’)11、C语⾔描述“x和y都⼤于或等于z”的表达式是:。
期末c语言考试题库及答案

期末c语言考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2nd_variableB. _variableC. variable-nameD. variable$name答案:C3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. intD. void答案:C6. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. <=答案:B7. 下列哪个选项是C语言中的循环结构?A. ifB. forC. switchD. case答案:B8. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. C语言中,以下哪个关键字用于定义一个指针?A. *B. &C. %D. #答案:A10. 下列哪个选项是C语言中的数组?A. int a[10];B. int *a;C. int a=10;D. int a;答案:A二、填空题(每题2分,共10分)1. 在C语言中,用于定义一个字符常量的数据类型是______。
答案:char2. 在C语言中,用于定义一个整型变量的数据类型是______。
答案:int3. 在C语言中,用于定义一个浮点型变量的数据类型是______。
答案:float4. 在C语言中,用于定义一个双精度浮点型变量的数据类型是______。
答案:double5. 在C语言中,用于定义一个布尔型变量的数据类型是______。
c语言期末考试题库大题及详解答案

c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
(完整版)大学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)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项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 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
c语言程序设计期末考试试卷

c语言程序设计期末考试试卷C语言程序设计期末考试试卷一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项表示一个字符常量?- A. 'A'- B. "A"- C. \A- D. A2. 以下哪个是C语言中的合法标识符?- A. 2variable- B. variable2- C. variable!3. C语言中,以下哪个语句用于定义一个整型数组?- A. int array[10] = {0};- B. int [10] array = {0};- C. int array = [10] = {0};- D. int array[10];4. 以下哪个是C语言中定义函数的关键字?- A. function- B. method- C. def- D. int5. C语言中,以下哪个是正确的函数声明?- A. int add(int a, int b)- B. int add(int a, int b) {}- C. int add(int, int);- D. void add(int a, int b);6. 在C语言中,以下哪个语句用于实现循环?- A. do-while- B. for- C. switch-case- D. if-else7. 在C语言中,以下哪个语句用于实现条件判断? - A. if-else- B. switch-case- C. while- D. for8. 在C语言中,以下哪个语句用于实现跳转?- A. return- B. break- C. continue- D. goto9. 在C语言中,以下哪个是正确的字符串字面量? - A. "Hello World"- B. 'Hello World'- C. "hello world"- D. {"Hello World"}10. 在C语言中,以下哪个是正确的结构体定义?- A. struct person { int age; char name[20]; };- B. struct { int age; char name[20]; } person;- C. struct person { int age; char name; };- D. struct person int age; char name[20];二、填空题(每空1分,共10分)1. 在C语言中,一个整型变量的默认值是______。
大学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)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项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 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题(每题3分,共30分,注意:答案写在后面的答题卡内,否则0分)1、若有定义:int a=8, b=5, c;执行语句c = a/b+0.4 ;后,c的值为()。
A) 1.4 B) 1 C) 2.0 D) 22 、以下程序中,while 循环的次数是()。
#include <stdio.h>void main(void){ int i = 0;while (i<10) {if (i<1) continue;if (i= =5) break; i++; } }A) 1 B) 死循环,不能确定次数C) 6 D) 103、以下程序的输出结果是()。
#include <stdio.h>void main(void){ int a = 0, i;for (i=1; i<5; i++){ switch (i) { case 0:case 3: a += 2;case 1:case 2: a += 3;default: a += 5; }}printf(“%d\n”, a);}A) 31 B) 13 C) 10 D) 204、以下程序的输出结果是()。
#include <stdio.h>void main(void){ int a = 5, b = 4, c = 6, d;printf(“%d\n”, d=a>b?(a>c?a: c): b);}A) 5 B) 4 C) 6 D) 不确定5、执行以下程序后的输出结果是()#include <stdio.h>void main(void){char a[]=”abc\0abc”;printf(“%s”, a);}A) abc\0abc B) abc\ C) abc\0 D) abc6、当调用函数时,实参是一个数组名,则向函数传送的是()。
A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值7、执行以下程序后,a的值为()。
int *p, a = 10, b=1; p = &a; a = *p + b;A) 12 B) 编译出错 C) 10 D) 11 8、以下正确的叙述是( )。
A) 在C 语言中,main 函数必须位于文件的开头 B) C 语言每行中只能写一条语句 C) C 语言本身没有输入、输出语句D) 对一个C 语言进行编译预处理时,可检查宏定义的语法错误 9、以下程序的输出结果是( )。
void main(void){ int a = 4, b = 5, c = 0, d; d = !a && !b || !c; printf(“%d\n ”, d); }A) 1 B) 0 C) 非0的数 D) –1 10、执行以下程序段后,变量y 的值是( )。
int x, y; x = 1;y = (++x*5);A) 5 B) 10 C) 15 D) 20评分标准:每题选对满分,选错0分。
二、分析结果题(20分) 1、(9分)#include <stdio.h> void f(int c) { int a=0;static int b=0; a++; b++;printf("%d: a=%d, b=%d\n", c, a, b); }void main(void) { int i;for (i=1; i<=3; i++) f( i ); }运行结果为: 1: a=1,b=12: a=1,b=2 3: a=1,b=3 2、(11分)#include <stdio.h> void main(void) {int num,c; num=2004; do {c=num%10; printf("%d",c);} while((num/=10)>0); printf("\n"); }运行结果为:4002三、程序填空题(每空4分,共20分)1、求1!+2!+3!+。
+10! #include <stdio.h> void main(void) {float s = 0, t = 1; int n;for (n=1; n<=10 ; n++) {t=t*n ; s =s+t ; }printf(“1!+2!+3!+。
+10!=%f ”, s);}2、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。
void exchange(int *x, int *y) { int t; t=*y;*y = * x ; *x = t ;}四、程序设计题(30分)(1) sum=2+5+8+11+14----,输入正整数n ,求sum 的前n 项和。
(10分)void main(){int n,i,t,sum=0; //1 分scanf("%d",&n); //1分t=2; //1分for(i=1;i<=n;i++) //2分{sum=sum+t; //2分t=t+3; //2分}printf("sum=%d",sum); //1 分}(2)今有100块砖,需100人来搬,男搬4,女搬3,两个小孩搬一砖。
问男、女、小孩各几何?(8分)# include "stdio.h"void main( ){ int man,woman,child; //1分for(man=0;man<=100;man++) //1分for(woman=0;woman<=100;woman++) //1分for(child=0;child<=100;child++) //1分{if (8*man+6*woman+child==200 && man+woman+child==100) //2分printf("%d %d %d\n",man,woman,child); //2分}}(3)求一个矩阵外围元素之和。
(12分)#include <stdio.h>#define N 4#define M 5double matrix_sum(double matrix[][M]){ double sum=0;int k;for (k=0;k<N;k++){sum=sum+matrix[k][0];sum=sum+matrix[k][M-1]; //3分}for (k=1;k<M-1;k++){sum=sum+matrix[0][k];sum=sum+matrix[N-1][k]; //3 分}return sum; //1 分}void main(){int i,j;double matrix_source[N][M];double t;double result;for (i=0;i<N;i++)for (j=0;j<M;j++){scanf("%lf",&t); // 1 分matrix_source[i][j]=t; // 2分}result=matrix_sum(matrix_source); //2 分printf("%lf\n",result);}二、单项选择题(每题2分,共30分,注意:答案写在后面的答题卡内,否则0分)1、下面哪一个是正确的标识符()A qbc?B bc$C _bcD 2bc2、设有int a[6]={1,2,3,4,5,6},*p=a;则*(p+3)与(*a+3)的值为()A 1,3B 3,3C 4,4D 4,63、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()A 0B 1C 2D 34、t为int类型,进入下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是( )A 循环控制表达式的值为0B 循环控制表达式的值为1C 循环控制表达式不合法D 以上说法都不对5、设int i=4,j=8,k;则表达式k=(i++,++i,j++)的值为()A 4B 8C 9D 106、有宏定义 #define MULT1(a,b) a*b#define MULT2(a,b) (a)*(b)宏引用 Y=MULT1(3+2,5+8);Z=MULT2(3+2,5+8)后,则Y和Z的值是()。
A Y=65,Z=65B Y=21,Z=65C Y=65,Z=21D Y=21,Z=217、若定义a为int型变量,则对指针变量p的正确初始化是()。
A int *p=a;B int *p=*a;C int p=&a;D int *p=&a;8、以下程序的输出结果是()main(){ int a=3;printf("%d\n",(a+a-=a*a) );}A -6B 12C 0D -129、在一个源文件中定义的全局变量的作用域为()。
A 本文件的全部范围B 本程序的全部范围C 本函数的全部范围D 从定义该变量的位置开始至本文件结束10、设有int I; I=7/2;printf(“%d”, I);则执行结果为()A 3.5B 3.50C 3D 3.011、在C语言中,合法的长整型常数是()A 0LB 4962710C 324562&D 216D12、以下选项中合法的字符常量是()A "B"B '\010'C 68D D13、假定x和y为double型,则表达式x=2,y=x+3/2的值是()A 3.500000B 3C 2.000000D 3.00000014、设x、y均为整型变量,且x=10, y=3,则以下语句的输出结果是()printf("%d,%d\n",x--,--y);A 10,3B 9,3C 9,2D 10,215、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()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);二、分析结果题(23分)1、(6分)#include “stdio.h”void main(){ int I=6,x,y;x=I++;y=++I;printf(“%d,%d”,x,y);}运行结果为: 6 , 8评分标准:写对一个数字得3分,全写对得6分。