C语言期末复习填空题部分(含答案)
- 格式:doc
- 大小:42.50 KB
- 文档页数:7
1. 一条简单语句是以________字符作为结束符的,一条复合语句是分别以________字符和________字符作为开始符和结束符的。
2. 任何一个C++程序至少且只能包含一个________函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。
一个函数定义由________和________两部分组成。
3. C++头文件和源程序文件的扩展名分别为________和________。
4. cout与操作符_______配合使用才能显示输出,cin与操作符_____配合使用才能实现输入。
5. 数据类型int,char,bool,float,double, int * 等的类型长度分别为________、________、________、________、________和________。
6. 数值常量46、0173和0x62对应的十进制值分别为________、________和________。
7. 字符串”It\’s\40a\40C++programe!”中包含有__________个字符。
8. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为________和________。
9. 若x=25,则计算y=x--表达式后,x和y的值分别为________和________。
10. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为________和________。
11. 假定x=64,y=88,则x<<2和y>>2的值分别为________和________。
12. 假定x是一个逻辑量,则x&&true的值与________的值相同,x||false的值也与________的值相同。
13. 假定x是一个逻辑量,则x&&!x和x||!x的值分别为________和________。
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语言期末考试题及详细答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. intC. _first_variableD. for答案:C2. C语言中,用于定义一个整型数组的关键字是?A. charB. intC. floatD. double答案:B3. 在C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <答案:B4. 下列哪个函数用于计算数组中元素的个数?A. strlenB. sizeofC. strcpyD. strcmp答案:B5. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A6. 下列哪个选项是C语言中合法的常量?A. 0x1AB. 1.23e-5C. 2.3.4D. 0b101答案:A7. 在C语言中,哪个关键字用于定义一个函数?A. intB. voidC. structD. return答案:B8. C语言中,用于定义一个指针的关键字是?A. intB. charC. floatD. *答案:D9. 下列哪个选项是C语言中合法的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\nWorld"D. "Hello\tWorld"答案:A10. 在C语言中,哪个运算符用于执行算术运算?A. %B. &C. +D. ||答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:______。
答案:int variable_name;2. 用于将一个字符串复制到另一个字符串的C语言函数是:______。
答案:strcpy3. 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语言中,用于定义一个布尔型变量的数据类型是______。
一、单项选择题(6小题,每小题3分,共18分)1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、externB、registerC、autoD、static2、下面4个选项中,是合法转义字符的选项是( )。
A、'\"B、'\'C、'\018'D、'\\0''\\' '\017' '\f' '\101''\n' '\''' 'xab' 'x1f'3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。
A、–10B、0abcC、0010D、0a120x8f –017 –0x11 ––011 0xc 0xf1 –0xa4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )A、# define POWER(x) □□x * xB、# define POWER(x) □□(x) * (x)C、# define POWER(x) □□(x * x)D、# define POWER(x) □□((x) * (x))5、以下程序段( )x= –1;do{ x=x*x;} while (!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6、下面程序的运行结果是( )# include <stdio.h>int main( ){ int i,j,x=0;for (i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if (j%2) continue;x++;}x++;}printf ("x= %d \n",x);return 0;}A、x=4B、x=8C、x=6D、x=12二、填空题(7小题,每小题3分,共22分)1、下面程序段的运行结果是( )。
二、填空题1 、C语言中对文件读写之前必须先打开文件,文件的打开是通过调用 ________ 函数来实现。
答案: 1: fopen#fopen()#fopen ()知识点:知识点/基本理论/C11文件/C11_2文件函数2 、C语言中文件操作结束节后,必须关闭文件。
而且关闭文件是通过调用 __________ 函数来实现。
答案: 1: fclose#fclose()#fclose ()知识点:知识点/基本理论/C11文件/C11_2文件函数3、字符串函数________用于从指定的磁盘文件中读出一个字符串。
答案: 1: fgets#fgets()知识点:知识点/基本理论/C11文件/C11_2文件函数4、字符串函数___________用于把一个字符串写入指定的磁盘文件中。
答案: 1: fputs#fputs()知识点:知识点/基本理论/C11文件/C11_2文件函数5、字符读写函数____________ 是用于从磁盘文件中读出一个字符。
答案: 1: fgetc#fgetc()#getc#getc()知识点:知识点/基本理论/C11文件/C11_2文件函数6、字符读写函数____________ 是用于把一个字符写入磁盘文件。
答案: 1: fputc#fputc()#putc#putc()知识点:知识点/基本理论/C11文件/C11_2文件函数7、共用体类型变量的定义关键字是 ________ 。
答案: 1: union知识点:知识点/基本理论/C10共用体与枚举类型8、定义枚举类型时采用的关键字是 __________。
答案: 1: enum知识点:知识点/基本理论/C10共用体与枚举类型9、在C语言中,从参数的形式看,函数可以分为两类:无参函数和 ____________ 函数。
答案: 1:有参知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T10、在C语言中,函数的返回值是由 ___________语句传递的。
期末复习填空题部分一、填空题1 设x为int型变量,写出描述“x是偶数与y是奇数”的表达式是x%2==0 && y%2==1 。
2 以下程序的输出结果是-27 。
#include<>void main(){ char c;c=0345;printf("%d\n",c);}3 设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是-12 。
4 若float x;以下程序段的输出结果是x=;printf("%f\n",(int)(x*1000+/(float)1000);5 下面的程序运行时从键盘上输入90<回车>,程序的输出结果是a=123,b=,c=789。
#include<>void main(){int a;float b,c;scanf("%3d%3f%3f",&a,&b,&c);printf("a=%d,b=%.1f,c=%.0f",a,b,c);}6 若输入字符串:abcdefg<回车>,则以下while循环体将执行0 次。
while((ch=getchar())=='g') printf("*");7 下面程序的输出结果是_67,D__。
main(){ char ch1,ch2;ch1='A'+'5'-'3'; ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}8 执行下面的语句:printf("%d\n",(a=3*5,a*4,a+5));,输出是20 。
9 下列程序的输出结果是3,2 -1 。
c语言期末考试题及答案及解析一、选择题(每题2分,共20分)1. 下列哪个是C语言的标准输入输出库函数?A. printf()B. scanf()C. getchar()D. All of the above答案:D解析:在C语言中,标准输入输出库函数包括printf()、scanf()和getchar()等,它们都用于输入输出操作。
2. 以下哪个不是C语言的关键字?A. intB. floatC. doubleD. string答案:D解析:int、float和double都是C语言的基本数据类型关键字,而string不是C语言的关键字,它是C++中的一个类。
3. 以下哪个语句可以正确地声明一个整型数组?A. int arr[10];B. int [10] arr;C. Both A and BD. None of the above答案:C解析:在C语言中,数组的声明可以是int arr[10];也可以是int [10] arr;,两者都是正确的声明方式。
4. 下列哪个是正确的C语言函数定义?A. int myFunction(int x, int y) { /* ... */ }B. void myFunction(int x, int y) { /* ... */ }C. Both A and BD. None of the above答案:C解析:在C语言中,函数定义可以返回int类型,也可以是void类型,表示没有返回值。
5. 以下哪个是正确的C语言循环结构?A. forB. whileC. do-whileD. All of the above答案:D解析:C语言支持多种循环结构,包括for循环、while循环和do-while循环。
6. 以下哪个是C语言的位运算符?A. &&B. ||C. &D. All of the above答案:C解析:&是C语言的位运算符之一,用于按位与操作。
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
期末复习填空题部分一、填空题1 设x为int型变量,写出描述“x是偶数与y是奇数”的表达式是x%2==0 && y%2==1 。
2 以下程序的输出结果是-27 。
#include<>void main(){ char c;c=0345;printf("%d\n",c);}3 设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是-12 。
4 若float x;以下程序段的输出结果是x=;printf("%f\n",(int)(x*1000+/(float)1000);5 下面的程序运行时从键盘上输入90<回车>,程序的输出结果是a=123,b=,c=789。
#include<>void main(){int a;float b,c;scanf("%3d%3f%3f",&a,&b,&c);printf("a=%d,b=%.1f,c=%.0f",a,b,c);}6 若输入字符串:abcdefg<回车>,则以下while循环体将执行0 次。
while((ch=getchar())=='g') printf("*");7 下面程序的输出结果是_67,D__。
main(){ char ch1,ch2;ch1='A'+'5'-'3'; ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}8 执行下面的语句:printf("%d\n",(a=3*5,a*4,a+5));,输出是20 。
9 下列程序的输出结果是3,2 -1 。
main(){ int x=0,y=5,z=3;while(z-->0 && ++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z);}10 下列程序的输出结果是54 。
#include<>void main(){int s=0,i=1;for(;i<10;i++,s+=i);printf("%d\n",s);}11 若int类型变量占两个字节,定义int x[15]={0,2,4};,则数组x在内存中所占的字节数是30 。
12 下列程序的输出结果是852 。
main(){ int i,a[10];for(i=9;i>=0;i--) a[i]=10-i;printf("%d%d%d\n",a[2],a[5],a[8]);}13 下列程序运行的结果是6 。
main(){ char ch[7]="65ab21"; int i,s=0;for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0';printf("%d\n",s);}14 运行下面程序,其输出结果是15,35 。
#include <>int x,y;one(){ int a,b;a=25,b=10;x=a-b;y=a+b;}main(){ int a,b;a=9,b=5;x=a+b;y=a-b;one();printf("%d,%d\n",x,y):}15 运行下面程序,其输出结果是321 。
#include <>main(){ void printd()int n=123;printd(n);}void printd(int n){ int i;if(n<0) { n=-n; putchar('-'); }putchar(n%10+'0');if((i=n/10)!=0) printd(i);}16 以下程序的输出结果是abb 。
#include<>void main(){ char ch[]="abc",x[3][3]; int i;for(i=0;i<3;i++) strcpy(x[i],ch);for(i=0;i<3;i++) printf("%s",&x[i][i]);printf("\n");}17 运行下面程序,从键盘输入三个字符ab#,其输出是ab##ba 。
#include <>void recursion(){ char c;c=getchar();putchar(c);if(c!='#') recursion();putchar(c);}void main(){ void recursion();recursion();}18 以下程序的输出结果是__55__。
#define M 5#define N M+Mmain(){ int k;k=N*N*5; printf("%d\n",k);}19 以下程序的输出结果是12 15 。
#include <>void swap(int *a, int *b){ int *t;t=a; a=b; b=t;}void main(){ int i=12, j=15, *p=&i, *q=&j;swap(p,q);printf("%d %d\n", *p,*q);}20 以下程序的输出结果是 15 12 。
#include <>void swap(int *a, int *b){ int t ;t=*a; *a=*b; *b=t;}void main(){ int i=12, j=15, *p=&i, *q=&j;swap(p,q);printf("%d %d\n", *p,*q);}二、程序填空题1 下列程序的输出结果是,请填空。
main(){ int a=9,b=2;float x= 6 .6【1】 ,y=,z;z=a/2+b*x/y+1/2;printf("%\n",z);}2 下列程序是求 的值。
#include ""main(){ int i=2; float sum=1;;while( i<=50 【1】 ){ sum=sum+i; i+2 【2】 ; }printf("sum=%f\n", sum 【3】 );}3 以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为50141211++++Λ负数时,结束输入。
请填空使程序完整。
#include<>void main(){float x,max,min;scanf("%f",&x);max=min= x 【1】;do{ if(x>max) max=x;if(x<min) min=x 【2】;scanf("%f",&x);} while( x>=o【3】);printf("%f,%f",max,min);}4 以下程序的功能是:从键盘上输入若干个学生的成绩(用输入负数结束输入),统计出平均成绩,并输出低于平均分的学生成绩。
请填空。
#include ""main(){ int n=0,i; float x[1000],sum=,ave,a;printf("Enter mark:\n"); scanf("%f",&a);while(a>= && n<1000){ sum+=a 【1】; x[n]= a 【2】;n++; scanf("%f",&a);}ave= sum/n 【3】;print("Output:\n");printf("ave=%f\n",ave);for(i=0;i<n;i++) if( x[i]<ave【4】) printf("%f\n",x[i]);}5 以下程序,数组a中存放一个递增数列。
输入一个整数,并将它插入到数组a中,使之仍为一个递增数列。
请填空。
#include<>void main(){int a[【1】11]={1,10,20,30,40,50,60,70,80,90},x,i,p;scanf("%d",&x);for(i=0,p=10;i<10;i++)if(x<a[i]) { p=i; break 【2】; }for(i=9;i>=p;i--) a[i+1]=a[i];【3】a[p]=x ;for(i=0;i<=10;i++) printf("%5d\n",a[i]);printf("\n");}6 以下程序的功能是:将t数组的内容连接到s数组内容的后面,使s数组保存连接后的新字符串。
main(){ static char s[30]="abcdefg",t[]="abcd"; int i=0,j=0;while(s[i]!='\0') 【1】i++ ;while(t[j]!='\0') { s[i+j]=t[j]; j++; }【2】s[i=j]='0' ;printf("%s\n",s);}7 一个整数称为完全平方数,是指它的值是另一个整数的平方。
例如81是个完全平方数,因为它是9的平方。
下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位数字相同:例如144(12*12)、676(26*26)等,程序找出并输出所有满足上述条件的三全数。
程序如下:main(){ int n,k,a,b,c;for(k=1;;k++){ n=k*k【1】if(n<100) continue【2】;if(n>999) 【3】break ;a=n/100;b= n/10%10 【4】;c=n%10;if(flag(a,b,c)) printf("n=%d=%d*%d\n",n,k,k);}}flag intx,inty,intz 【5】{ return(!((x-y)*(x-z)*(y-z))); }8 以下程序的功能是:将任意十进制正整数转换成二进制数,请填空使程序完整。