南京邮电大学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语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。
答案:int7. C语言中,用于输入输出的库函数分别是______和______。
答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。
答案:int*9. C语言中,用于定义函数的关键字是______。
答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。
答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。
答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。
结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。
答案:递归函数是一种函数自己调用自己的特殊函数。
递归函数通常用于解决可以被分解为相似子问题的问题。
递归函数需要有一个明确的终止条件,以防止无限递归。
四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。
C语言期末考试试卷附参考答案

C语言期末考试一试卷附参照答案序列中 10 个数的次序为:,若使用次序比较法,经过三轮排序后,这10 个数的次序为:。
3. 调用字符串办理函数时,应在程序的开头增添预编译命令:#include<>,puts( )函数将一个以结束的字符序列(字符串)输出到终端4.C 语言中,函数分为系统供给的和用户自定义函数两类,也可分为有参函数和两类。
5.函数的递归调用指在调用一个函数的过程中又。
6.函数值只好经过语句返回主调函数。
四、程序改错(求出两个非零正整数的最大条约数在右侧写出正确内容, 5× 2)#include<stdio.h>int fun(int a, b ){ int r,t;if(a<b) {t=a;b=a;a=t;}r=a%b;while(r!=0){a=b;b=r;r=a/b;}return a;}五、阅读程序写出运转结果(4×5)1.# include<stdio.h>int main( ){ void fun(int x);fun(8);printf("\n");}void fun(int x){if(x/2>0) fun(x/2);printf("%d",x);}运转结果为:3. #include <stdio.h># include<math.h>int main( ){ int i,j,n=0;for(i=― 5;i<=5;i++){ if(i%2!=0) n++;for(j=1;j<=abs(i);j++) printf( “ “);,并作为函数值返回。
在错误下边划横线,void main( ){ int n1,n2,a;printf( “please input n1,n2:\n ”);scanf( “%d%d”,&n1,&n2); a=fun(n1,n2);printf("最大条约数是: %d\n",a);}2.# include <stdio.h>void main ( ){ char s1[ ]=” This book ”;char s2[ ]= ” THIS hook ”;int i;for (i=0;s1[i]!= 0’ &&s2[i]!= 0’i++);if(s1[i]!=s2[i]) printf( “ %c” ,s1[i]);}运转结果为:4.#include <stdio.h>int main( ){int i,j,x;int a[10] ={12,3,14,5,26,97,38,9,0,―2}; for(i=0;i<=9;i++){x=a[i];j=i-1;while(j>=0&&x<a[j])六、程序填空题(结果按次号填在下方对应横线上, 10× 2 分)1、编程实现将十进制整数 n 变换成十六进制 2、编写判断能否为素数的函数,在主函数 数输出。
电大c语言程序设计期末试题及答案

电大c语言程序设计期末试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. voidD. int答案:D2. 下列关于数组的描述中,正确的是:A. 数组的大小在声明后可以改变B. 数组的索引从0开始C. 数组是动态分配的D. 数组不能包含不同类型的元素答案:B3. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列哪个选项是C语言中的合法整数常量?A. 0x1AB. 1.5e2C. 0101D. 0L答案:A5. C语言中,用于输入输出的库函数是:A. math.hB. stdio.hC. string.hD. time.h答案:B6. 下列哪个是C语言中正确的注释?A. /* This is a comment */B. // This is a commentC. /* This is a comment */D. // This is a comment答案:A7. 在C语言中,用于定义结构体的关键字是:A. structB. unionC. enumD. typedef答案:A8. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. goto答案:D9. C语言中,用于定义指针的符号是:A. &B. *C. %D. #答案:B10. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcatB. strcpyC. strcmpD. strlen答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。
答案:extern2. 当需要在C语言中定义一个常量时,可以使用关键字________。
答案:const3. C语言中,用于定义一个空指针的值是________。
答案:NULL4. 在C语言中,________运算符用于比较两个值是否相等。
2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)

2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。
2、C语言的源程序必须通过【】和【】后,才能被计算机执行。
3、结构化程序由________、________ 、________ 3种基本结构组成。
4、C语言中的标识符可分为关键字、_______和_______3类。
5、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。
6、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。
7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。
例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。
请填空。
_______;a=b;b=c;_______;9、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。
_______10、下面程序段的运行结果是_______。
char ch[]="600";int a,s=0;for(a=0;ch[a]>= '0'&&ch[a]<='9';a++)s=10*s+ch[a]-'o';printf("%d",s);二、选择题11、在C语言中,char型数据在内存中的存储形式是()。
大学c语言期末考试题库试题及答案

大学c语言期末考试题库试题及答案在即将到来的大学C语言期末考试中,同学们可能会遇到各种类型的题目。
以下是一些典型的试题及其答案,供同学们复习参考。
1. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. integer答案:A. int2. 若有定义:int a = 10; 则表达式 a++ 的值是多少?A. 9B. 10C. 11D. 无法确定答案:B. 103. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. str_length()D. string_length()答案:A. strlen()4. 若有以下代码片段:```cint x = 5;printf("%d", x++);```执行后输出的结果是?A. 4B. 5C. 6D. 无法确定答案:B. 55. 在C语言中,以下哪个选项表示“逻辑与”操作?A. &&B. ||C. !D. &答案:A. &&6. 若有以下代码:```cint a = 3, b = 4, c;c = a + b;```则变量 c 的值是多少?A. 7B. 3C. 4D. 无法确定答案:A. 77. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2,3];B. int array[2][3];C. int array[2][3][4];D. int array[][];答案:B. int array[2][3];8. 若有以下函数定义:```cint add(int x, int y) {return x + y;}```则调用 add(5, 3) 时,返回的值是多少?A. 2B. 5C. 8D. 无法确定答案:C. 89. 在C语言中,以下哪个选项表示“不等于”的比较运算符?A. ==B. !=C. =D. <=答案:B. !=10. 若有以下代码:```cchar str[] = "Hello";str[0] = 'h';```执行后,str 数组的内容是什么?A. "hello"B. "Hello"C. "helloworld"D. "hEllo"答案:A. "hello"这些题目覆盖了C语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
南邮面向对象程序设计及C期末试卷A

南邮⾯向对象程序设计及C期末试卷A南京邮电⼤学学年第⼆学期《⾯向对象程序设计及C++》(期末)试卷1院(系) 班级学号姓名(★温馨提醒:①这是试题纸,教师不批改,请将所有最终答案写在答题纸上②请在试题纸和答题纸上均完整填写班级、学号、姓名信息③考试结束时请将答题纸、试题纸及草稿纸⼀并交来⼀、填空题(共10分,每空1分)1、开发C++程序与开发其他⾼级语⾔的程序⼀样,包括编辑、编译、①和②四个步骤。
2、C++语⾔中的标准输出流对象是③,在程序中⽤于代表标准输出设备。
3、对于已存在的定义“int *ptr=new int [10] ;”,应该⽤④语句释放动态内存空间。
4、C++语⾔提供了处理异常的有效机制,通过⑤抛出异常,通过⑥检测异常、通过catch 捕捉并处理异常。
5、类的成员有3种访问属性,其默认的访问属性为⑦;访问属性为___⑧的成员既可被派⽣类继承⼜保持了封装和信息隐藏性。
(请填关键字)6、C++⽀持两种多态性,其中函数重载和运算符重载⽤于实现⑨,⽽虚函数⽤于实现⑩。
⼆、单选题(共20分,每题2分)1、假设已有定义:const char *name="chen";下⾯语句中错误的是。
A 、name[3]= 'a'; B 、name="lin"; C 、name=newchar[5]; D 、cout<2、设有语句void f(int a[10],int &x); int y[10],*py=y,n=10;则对函数f 的正确调⽤语句是。
A 、f(py[10],n);B 、f(py,n);C 、f(*py,&n);D 、f(py,10); 3、下列不正确的重载函数是。
A 、int print(int X); 和 void print(float X); B 、int disp(int X); 和 char disp(int Y) const;C 、void disp(char * str,int Y);和 int disp(char * s,int X);D 、int view(int X , int y); 和 int view(int X);装订线内不要答题⾃觉遵守考试规则,诚信考试,绝不作弊4、有关this指针的描述中,错误的是。
(完整版)大学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)。
模拟试卷A一、单选题1、C语言中运算对象一定不能是double类型的运算符是___ 。
A、%=B、/C、=D、<=2、能正确表达数学逻辑关系"0<a<1或0<b<1"的c语言表达式是___。
A、(0<a)&&(a<1)||(0<b)&&(b<1)B、((0<a)||(a<1))&&((0<b)||(b<1))C、(0<a<1)&&(0<b<1)D、(0<a<1)||(0<b<1)3、设有以下变量均为int类型,则值不等于7的表达式是___。
A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)4、下列while循环体中printf语句将执行___。
int i= 3;while(--i) printf("%d", i);A、3次B、2次C、0次D、无限次5、有语句定义:int i, j; 则以下程序段中printf的执行次数是___。
for (i=3; i; i--)for (j=0;j<2;j++) { printf("%d",i*j); }A、9B、4C、0D、66、int a,b,c; 语句if(a>b) c=0; else c=1; 等价于___。
A、c=(a>b)?1:0;B、c=a>b;C、c=a<=b;D、以上均不是7、有如下定义语句:int a, b=5, *p=&a; 则能完成a=b赋值功能的语句是___。
A、a=*p;B、*p=*&b;C、a=&b;D、*p =&*p;8、设int *ptr, x, array[5]={5,4,3,2,1}; ptr=array; 能使x的值为3的语句是___。
A、x=array[3];B、x=*(array+3);C、x=*(ptr+2);D、array+=2; x=*array;9、有函数原型为void f(int,int *);主函数中有变量定义:int a,*p=&a,b[10]; 则下列几种调用错误的是___。
A、f(a,p);B、f(*p,b);C、f(b,&a);D、f(*p,p);10、若有宏定义如下:#define M 5#define N M + 1#define L N*M / 2则执行语句printf("%d,%d",L,M);后,输出结果是___。
A、7,6B、12,6C、12,5D、7,511、若有以下结构体定义,选择___赋值是正确的。
struct ST{ int x , y ;}vs;A、ST.x = 10;B、struct ST s1 = {10,20};C、struct vs= {10,20};D、;12、有定义:char a[80]= "ABC",b[80]= "PLAY",则正确的输出语句是___。
A、puts(a,b);B、printf("%s,%s"a[],b[]);C、putchar(a,b);D、puts(a);puts(b);13、设有语句int a[3][2],下面___不能表示元素a[i][j]。
A、*(a[i]+j)B、*(*(a+i)+j)C、*(a+i*2+j)D、*(*a+i*2+j)14、下面各程序段能够正确实现两个字符串p、q交换的是___。
A、char p[]="glorious",q[]="leader",t[9];strcpy(t,p); strcpy(p,q); strcpy(q,t);B、char p[]="glorious",q[]="leader",*t;t=p; p=q; q=t;C、char *p="glorious",*q="leader",*t;t=p; p=q; q=t;D、char p[]="glorious",q[]="leader",t; int i;for(i=0;p[i]!= '\0';i++) {t=p[i]; p[i]=q[i]; q[i]=t;}15、若要用fopen函数创建一个新的二进制文件,该文件要既能读也能写,则文件打开方式的字符串应是__。
A、"ab+"B、"wb+"C、"rb+"D、"ab"二、填空题1、C语言源程序中整型常量可以用八进制数表示,此时必须以(1)为前缀。
2、有数学表达式:x-3,其C语言表达式为(2) 。
3、有变量定义char c,*s=NULL;则sizeof(c)的值为(3) ,sizeof(s)的值为(4) 。
4、若s是int型变量,且s=7,则表达式: s/2+(s+1)%2 的值为(5) _。
5、用于从循环体中退出本层循环的语句是(6) 语句。
6、声明一个具有全局作用域的外部函数,需要使用的关键字是(7) 。
7、C语言中根据数据的组织形式,把文件分为文本文件和(8) 两种。
8、单链表的结点类型定义为:struct NODE{ int data;struct NODE * next;}head,p,q;指针p指向链表中间的某一个结点处,在其后插入指针q所指向的结点,需要用两条语句实现,依次是:q->next=p->next; 和(9) 。
9、设有说明语句int (*ptr)[4],那么ptr是(10) 。
三、程序阅读题1、以下程序的执行结果是。
#include<stdio.h>int main(){int i;for(i=3;i<13;i++){if(i%4==0)continue;else if(i/10)break;elseprintf("%d",i);}return 0;}2、以下程序的执行结果是_____。
#include<stdio.h>func( int a, int b){static int m, i=2;i+=m+1;m=i+a+b;return m;}int main(){int k=4, m=1, p,i;for(i=1;i<=2;i++){p=func(k,m);printf( "%d ", p);}return 0;}3、以下程序的执行结果是_____。
#include<stdio.h>long fun( int n){long s;if(n==1||n==2)s=2;elses=n+fun(n-1);return s;}int main(){printf(“%ld”,fun(5));return 0;}4、以下程序的执行结果是_____。
#include<stdio.h>struct stru{int x;char c;float y;};void func(struct stru *b){b->x=30;b->c='z';b->y += b->x;}int main( ){struct stru a={10,'x',20.0},*p=&a;func(p);printf("%d %c %2.0f\n",a.x,a.c,a.y);return 0;}5、以下程序的执行结果是_____。
#include<stdio.h>int main(){int i,j,row=0,col=0,m;int arr[3][2]={100,110,120,28,91,35};m=arr[0][0];for(i=0;i<3;i++)for(j=0;j<2;j++)if(arr[i][j]>m){m=arr[i][j];row=i;col=j;}printf("%d %d %d\n",m,row,col);return 0;}四、程序填空题1、打印出所有“水仙花数”,所谓:“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个水仙花数,因为153=13+53+33。
#include<stdio.h>#include<math.h>int main(){int x=100,a,b,c;while(_____①______){a=x/100;b=____②______;c=x%10;if(x== ____③______)printf("%5d",x);____④______;}return 0;}2、下面程序的功能是:从键盘读入一个可以带空格的字符串(假设字符串长度不超过10),将它逆序输出。
#include <stdio.h>#include <string.h>int main( ){char str[11],tmp;int i,j;____⑤ ______;for(i=0,j=____⑥_____ ; i<j;i++,j--){tmp=str[j];____⑦_____;str[i]=tmp;}printf("%s\n",str);return 0;}3、读文件E:\story.txt,在显示器上输出其内容。
#include<stdio.h>#include<stdlib.h>int main( ){char ch;FILE *fp;fp=fopen("E:\\story.txt", "r");if(!fp){printf("Cannot open input file.\n");exit(0);}while(___⑧_____!=EOF){___⑨_____; //输出该字符}___⑩_____;return 0;}五、编程题编写一个程序,包含main、readin、sort与print四个函数。
该程序的功能是:调用readin 函数从键盘读入n个整数(n≤10),调用print函数输出排序前的数列,再调用sort函数对元素值用选择法进行由大到小的排序,最后调用print函数输出排序后的数列。