《C语言程序设计》期末复习
- 格式:doc
- 大小:73.00 KB
- 文档页数:8
c语言程序设计期末试题及答案一、选择题(每题2分,共20分)1. 以下选项中,哪个是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释答案:A2. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = "Hello", "World";D. char str[6] = "Hello", "World";答案:A4. C语言中,以下哪个函数用于将字符串连接起来?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:A5. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. <=答案:B6. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:B7. C语言中,以下哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C8. 在C语言中,以下哪个选项是正确的二维数组定义方式?A. int arr[2][3];B. int arr[][] = {1, 2, 3, 4, 5, 6};C. int arr[2][3] = {1, 2, 3};D. int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};答案:D9. C语言中,以下哪个函数用于计算数组中元素的个数?A. sizeof()B. count()C. length()D. size()答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. open()C. fileopen()D. file()答案:A二、填空题(每题2分,共20分)1. C语言中,定义一个整型变量并赋值为10的语句是____。
C语言程序设计期末复习
一、基础知识
1、变量和运算符
变量就是程序中用来保存信息的抽象容器,可以用来记录用户输入、
程序执行时间以及中间结果等信息
C语言允许使用者定义变量,分为基本类型变量和指针变量。
其中基本类型变量有:整型int,浮点型float,字符型char,双精
度型double,无符号整型unsigned等。
运算符是对变量进行运算的符号,C语言中的运算符大致可分为三大类:算术运算符,关系运算符和逻辑运算符。
其中算术运算符包括:+、-、*、/和%;关系运算符包括:>、>=、<、<=、==和!=;
逻辑运算符包括:&&,和。
2、流程控制
程序的流程控制是应用程序中最重要的结构,在C语言中可以通过控
制语句来控制程序的执行流程。
常用的控制语句有:if、goto、while、for、switch-case等。
if语句可以根据执行条件跳过执行部分语句,节省程序执行的时间。
goto语句可以跳转到指定的语句,实现循环执行流程。
while语句可以不固定有多少次操作,根据执行条件决定是否继续执行。
for语句可以更精确的表示循环次数,避免无意识的多次循环操作,从而提高程序运行效率。
switch-case语句可以根据变量的变化值,执行不同的操作,实现复杂的逻辑判断。
3、函数。
C语言程序设计基础知识期末复习一、 C语言与算法1.程序:一组计算机能识别和执行的指令。
2.C语言的特点:运算符丰富(共有34种运算符)、数据类型丰富、具有结构化的操纵语句。
3.C语言程序的结构特点:(1).一个程序由一个或多个源程序文件组成:一个源程序文件中能够包括三个部分:预处理指令、全局声明、函数定义(2).函数是C程序的要紧组成部分:一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个);每个函数都用来实现一个或几个特定功能;被调用的函数能够是库函数,也能够是自己编制设计的函数。
(3).一个函数包括两个部分函数首部和函数体(声明部分:定义在本函数中所用到的变量;对本函数所调用函数进行声明;执行部分:由若干个语句组成,指定在函数中所进行的操作)(4). 程序总是从main函数开始执行(5). C程序对计算机的操作由C语句完成(6.)数据声明和语句后来必须有分号(7.)C语言本身不提供输入输出语句(8.)程序应当包含注释,增加可读性4、算法(1)算法+ 数据结构= 程序(2)顺序结构、抉择结构、循环结构是表示一个良好算法的基本结构(3)算法的特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4)算法流程图:一个流程图包括以下几部分:表示相应操作的框;带箭头的流程线;框内外必要的文字说明。
流程线不要忘记画箭头,否则难以判定各框的执行次序。
算法流程图的结构特点:只有一个入口;只有一个出口(一个推断框有两个出口;一个抉择结构只有一个出口)结构内的每一部分都有机遇被执行到。
也就是说,对每一个框来说,都应当有一条从入口到出口的路径通过它;结构内不存在“死循环”。
二、顺序结构设计5、标识符:用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序列。
C语言对标识符的规定:(1)只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线(2)长度:在TC中最多允许32个字符,建议不要超过8个假如系统规定标识符长度为8,那样x1234567A和x1234567B会被视为同一标识符。
C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
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-whileD)if、for、continue7.在while(!x)语句中的!x与下面条件表达式等价的是()A) x!=0B) x==1C)x!=1D)x==08、有以下程序:#include <XXX>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 <XXX>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的正确调用语句是()A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n);D)void fun(n,x);2、填空题(10x2’=20’)11、C言语描绘“x和y都大于或等于z”的表达式是:。
C语言程序设计期末考试试题(含答案)C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不就是C语言得特点得就是( )A、C语言简洁、紧凑B、能够编制出功能复杂得程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确得C语言标识符就是()A、ABCB、abcC、a_bcD、ab、c3、一个C语言程序就是由()A、一个主程序与若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性得描述中错误得就是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a就是整型,f就是实型,i就是双精度型,则表达式10+‘a’+i*f值得数据类型为()A、int B、float C、doubleD、不确定6、在C语言中,char型数据在内存中得存储形式就是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x得值就是( ) 。
#includemain(){int x;floaty;scanf("%3d%f",&x,&y);}A、12345B、123 C、45 D、3458、若有以下定义int a,b; float x,则正确得赋值语句就是()A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序得执行结果就是( )#include<stdio、h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A得ASCII码就是65,以下程序得执行结果就是( )#include<stdio、h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高得就是()A、<B、十C、%D、!=12、设x、y与z就是int型变量,且x=3,y=4,z=5,则下面表达式中值为0就是( ) 。
C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,正确的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列关于数组的描述中,错误的是?A. 数组可以是多维的B. 数组的下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D5. C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. void答案:C6. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. externC. registerD. auto答案:A7. 下列关于C语言中文件操作的描述中,正确的是?A. 文件操作只能使用标准库函数B. 文件指针必须使用FILE类型C. 文件操作必须使用fclose函数关闭文件D. 文件操作不能使用缓冲区答案:B8. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. typedefC. enumD. struct答案:A9. 下列关于C语言中位运算的描述中,错误的是?A. & 表示按位与B. | 表示按位或C. ^ 表示按位异或D. ~ 表示按位取反答案:B10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。
答案:42. C语言中,使用______关键字可以定义一个无限循环。
答案:while3. C语言中,数组的元素默认初始化为______。
《C语言程序设计》期末复习题一、选择题1.能将高级语言编写的源程序转换成目标程序的是()A.程序 B. 解释程序 C. 编译程序 D.编辑程序2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。
A. 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D.!(a<=10)&&!(a>=15)3.当调用函数时,实参是一个数组名,则向函数传送的是( )。
A. 数组的长度B. 数组的首地址C. 数组每一个元素的地址D. 数组每个元素中的值4.执行下面的程序段后,k的值是()int k=1,n=325;do { k*=n%10;n/=10;}while(n);A. 3B. 30C. 523D. 3255.若有以下数组说明,则i=6;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.3B.8C.6D.56.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()A. for(i=1,p=1;i<=5;i++) p*=i;B. for(i=1;i<=5;i++){ p=1; p*=i;}C. i=1;p=1;while(i<=5){p*=i; i++;}D. i=1;p=1;do{p*=i; i++; }while(i<=5);7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}}; 则数组a的第一维的大小为: ( ) A. 12 B. 3 C. 4 D.无确定值8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是( )。
char s[20]= “Bejing”,*p;p=s;A.可以用*p表示s[0]B.s数组中元素的个数和p所指字符串长度相等C.s和p都是指针变量D.数组s中的容和指针变量p中的容相等9.以下正确的函数定义是( )。
1.二进制数1010的十进制值为()A.11 B.10 C.9 D.82.C程序中,下列关键字哪个不是表示数据类型的()A.int B.float C.break D.char3.不属于字符型常量的是()A.‘A’B.‘\n’C.‘\0’D. "int"4.下列叙述正确的是()A.C语言程序总是从第一个定义的函数开始执行。
B.在C语言程序中,要调用的函数必须有main()函数中定义。
C.C语言程序总是从main()函数开始执行。
D.C语言程序中的main()函数必须放在程序的开始部分。
5.下列选项中,优先级最高的运算符是()A.! B.|| C.&& D.>=6.设整型变量a为5,使b不为2的表达式是()A. b=a/2B. b=(a+1)/3C. b=a%2D. b=a%37.判断char型变量ch是否为大写字母的正确表达式是()A.(…A‟<= ch)AND(…Z‟>= ch)B.(ch>=…A‟)&(ch<=…Z‟)C.‟A‟<=ch<=…Z‟D.(ch>=…A‟)&&(ch<=…Z‟) 8.下面表达式为0的是()A.3%5 B.3/5.0 C.3.0/5 D.3/59.已知整型变量a,指出下面输入语句正确的是()A. scanf(“%d”,a);B. scanf(“%d”,&a);C. scanf(“%f”,&a);D. scanf(“lf”,a);10.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A. 同一行上的ifB. 在其之前未配对的最近的ifC. 在其之前未配对的ifD.缩排位置相同的if11.表达式!(0&&0)>>等价于()x yA.!(0)||!(0)>>x y>>B.!0||!0x yC.!0&&!0x y>>>>D.!(0)&&!(0)x y12.以下正确的描述是()A.从多层嵌套中退出时,可以用break一次性退出所有循环B.在循环体内使用break语句或continue语句的作用相同C.continue 语句的作用是结束整个循环的执行D.只能在循环体内和switch语句体内使用break语句13.表达式(7 !=8)&&(…Z‟<…a…)的值是()A. 1B. tureC. 0D. 非0值14.break语句的正确的用法是()A. 只能修改控制变量。
B. 跳出多重循环。
C. 在多重循环中,只能退出最靠近的那一层循环语句。
D. 无论在任何情况下,都中断程序的执行,退出到系统下一层。
15.以下程序段()int iNum=3;do{iNum=iNum*iNum;}while(iNum<90);A.是死循环B.循环执行一次C.循环执行两次D.循环执行三次16.下列对数组定义正确的是()A.char p[]; B. int a[2][ ]={1,2,3,4,5};C.char p[]=abc; D. int a[ ][3]={1,2,3,4,5};17.简单变量做实参时,它和对应的形参之间的数据传递方式为()A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.由用户指定传递方式18.不能把字符串:Hello!赋给数组b[]的语句是()。
A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};B. char b[10];b=“Hello!”;C. char b[10]; strcpy(b,“Hello!”);D.char b[10]=“Hello!”;19.下列四组选项中,均是合法的用户标识符的选项是()二、读程序题(每题4分,共20分)1.以下程序输出的结果是#include<stdio.h>main( ){ int x=3,y=5;printf(“x=%d, y=%d, sum=%d\n”,x,y,x+y);}2.以下程序输出的结果是int i;int x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][(i+1)%3]);3.以下程序输出的结果是#include<stdio.h>main( ){int x=2011,y=2012;printf(“%d %d\n”,x--,--y);}4.以下程序的输出结果是#include <stdio.h>main(){int x=10,y=3;printf(“%d\n”,x+y);}5.执行以下程序段后,iArr[7]的值是#include "stdio.h"void main(){int iArr[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;i=0;j=9;while(i<j){t=iArr[i];iArr[i]=iArr[j];iArr[j]=t;i++,j--;}}6.以下程序的输出结果是#include "stdio.h"void main(){ int x=4;switch(x){ case 1: printf("A");case 2: printf("B");case 3: printf("C");case 4: printf("D");case 5: printf("E");default:printf("x=%d",x);}}7.以下程序的输出结果是#include <stdio.h>main(){int x=7,y=11,t;t=x;x=y;y=t;printf("x=%d,y=%d",x,y);}8.以下程序的输出结果是#include "stdio.h"void main(){int a[5]={1,1,2,3,5};int i,s=0;for(i=0;i<5;i+=2)s=s+a[i];printf("%d\n",s);}三、1.求33矩阵的所有元素之和。
#include "stdio.h"void main( ){int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j,sum;sum=0;for(i=0;i<3;i++)for( ;j<3;j++)printf("%d\n",sum);}2.从键盘输入一个三位数,判断该数是否为一个“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为333153153=++。
#include "stdio.h"#include "math.h"void main( ){int num;;int i1,i2,i3;i1=num/100;; i3=num%10;if( )printf("%d 是水仙花数",num);elseprintf("%d 不是水仙花数",num);}四、1.编写一个程序,输入一个两位数,输出该两位数的两个数字的乘积。
如:输入36,得到3618⨯=。
2.编写一个程序,定义一个由10个数据构成的整型数组,从键盘输入这个数组的数据,输出数组数据之平均数。
3.编写程序,定义一个二维整型数组并初始化,二维数组数据为123123*********⎛⎫ ⎪--- ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭,请按照5行3列的形式排列输出数组数据。
4.已知数学函数32111x x y xx ->⎧=⎨<=⎩, 试编写一个程序,从键盘输入x 的值,从屏幕上输出y 的值。
5.编写一个程序,输入一行字符串,以回车键作结束,统计并输出数字字符、大小写字母字符及其它字符的个数。
6.编写一个程序,输入两个字符串str1、str2,实现两个字符串前后相接结合为一个字符串,存放于str1,并重新输出字符串str1。
字符串的长度都不超过100个字符。
7.编写程序,从键盘输入一个一维数组,求其最大值的序号(从1开始记录序号)。