C语言期末考试试题第一套
C语言程序设计期末考试试题 含答案

C语言程序设计期末考试试题含答案第一部分:选择题(每题5分,共40分)1. 下列选项中,不是C语言基本数据类型的是:A. intB. floatC. doubleD. string答案:D2. 在C语言中,for循环和while循环的区别是:A. for循环适用于已知循环次数,while循环适用于未知循环次数B. for循环必须有循环条件,while循环可以没有循环条件C. for循环只能用于数字计算,while循环可以用于任意类型的循环D. for循环和while循环没有区别答案:A3. 下列哪个选项是合法的变量名:A. 123varB. _varD. %var答案:B4. 在C语言中,使用printf函数输出一个整数变量的值,应该使用下列哪个占位符:A. %fB. %cC. %dD. %s答案:C5. 下列代码中,输出的结果是什么:```cint a = 5;printf("%d\n", a++);printf("%d", a);```A. 6 5B. 6 6C. 5 6答案:A6. 下列哪个选项中的函数可以用来比较两个字符串是否相等:A. strcmpB. strcatC. strlenD. strcpy答案:A7. 当我们在编写C语言程序时,通常会将一些常用的函数或者代码片段写成一个个独立的文件,这些文件通常以什么扩展名来保存:A. .cB. .hC. .txtD. .exe答案:B8. 下列代码中,缺少的语句是什么:```cint a = 10;int b = 20;int c = a + b;```A. return c;B. printf("%d", c);C. break;D. continue答案:B第二部分:编程题(每题30分,共60分)题目1:编写一个C程序,实现求取一个整数数组中元素的平均值。
要求通过函数实现,函数原型为:float average(int arr[], int length),其中arr为整数数组的首地址,length为数组的长度。
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语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言的关键字?A. IntegerB. StringC. FloatD. None of the above答案:D2. 在C语言中,定义一个整型变量的正确语法是什么?A. int var;B. var int;C. integer var;D. var integer;答案:A3. 以下哪个表达式的结果不是整数?A. 3 / 2B. 7 % 3C. 10 / 2D. 8 / 2答案:A二、填空题1. 在C语言中,用于定义数组的关键字是________。
答案:Array2. 一个C语言程序的执行从________函数开始。
答案:main3. 以下语句的输出结果是________。
```cint a = 5, b = 10;printf("%d", a + b);```答案:15三、简答题1. 简述C语言中指针的概念及其用途。
答案:指针是C语言中用来存储变量地址的变量。
它允许程序员直接访问内存地址,从而可以动态地操作内存。
指针的用途包括动态内存分配、实现数据结构如链表、数组的遍历等。
2. 解释C语言中的函数重载。
答案:C语言不支持函数重载。
在C语言中,如果两个或多个函数具有相同的名称但参数列表不同,编译器会报错。
这是与支持函数重载的语言(如C++)的主要区别。
四、编程题1. 编写一个C语言程序,实现计算并输出1到100的整数之和。
```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("The sum of numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转的功能。
大一c语言期末考试题及答案解析

大一c语言期末考试题及答案解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,用于定义单精度浮点数的关键字是?A. intB. floatC. doubleD. char答案:B3. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 下列哪个选项不是C语言中的控制结构?A. ifB. forC. whileD. switch答案:D6. C语言中,用于定义字符数组的关键字是?A. charB. stringC. arrayD. vector答案:A7. 下列哪个函数用于输出格式化的字符串?A. printfB. scanfC. fprintfD. sprintf答案:A8. C语言中,用于定义整型变量的关键字是?A. intB. floatC. doubleD. char答案:A9. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ||D. ==答案:D10. 在C语言中,用于定义布尔变量的关键字是?A. boolB. intC. charD. float答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。
答案:int variable_name;2. C语言中,用于输入一个整数的函数是:___________。
答案:scanf3. 如果要定义一个字符串常量,应该使用___________符号。
答案:"4. 在C语言中,使用___________关键字可以定义一个函数。
答案:void 或者其他返回类型5. C语言中,用于定义一个数组的语法是:___________。
C语言期末参考试题1

C语言期末参考试题1大学C语言期末考试题及答案(1)1、构成C语言的基本单位是_______。
A.过程B.函数C.语句D.命令2、设x为整型变量,不能正确表达数学关系:5<x<10的c语言表达式是_____。
A. 5B.x>5&&x<10C.x==6||x==7||x==8||x==9D.!(x<=5)&&(x<10)3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为_____。
A.&&、||、!B.||、&&、!C.&&、!、||D.!、&&、||4、下面语句中,正确的是_____。
A.printf("%c\n","student");B.printf("%c\n","c");C.printf("%s\n",&a);D.printf("%s\n","hello");5、对于for(表达式1;;表达式3)可以理解为_____。
A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)6、执行下面程序段的结果是_____。
main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d",a,b); }A.a=1,b=1B.a=2,b=1C.a=1,b=0D.a=2,b=27、执行下面程序段的结果是_____。
int x=0; do { printf(“-”,x--); }while (x);A.打印出321B.打印出23C.不打印任何结果D.陷入死循环8、设x=10,y=5;z=15,执行下面一段程序后z的结果是_____。
C语言期末考试卷(一)

武 汉 工 程 大 学2017年期末考试模拟试卷(卷一)考试方式:【闭卷】 考试时间:【2017-06-27】 考试时间:【120分钟】 出题人 :【张强东】题号 得分注意:答案一律写在答题纸上,写在试卷上无效一. 选择题:(单选,每题2分,共40分,请填写在答题卡上)1. 可以作为自定义标识符的是() A) 2x B) while C) s&1 D) _2x2. 下列关于单目运算符++、--的叙述中正确的是________。
A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char 型变量和int 型变量,但不能是float 型变量 C) 它们的运算对象可以是int 型变量,但不能是double 型变量和float 型变量 D)它们的运算对象可以是char 型变量、int 型变量和float 型变量3. 下面不属于算法的控制结构的是______ 。
A) 顺序结构 B) 归纳结构 C) 循环结构 D) 选择结构4. 在下列选项中,没有构成死循环的程序段是A) int i=100;while (1) {i=i%100+1;………………………………………密…………………………………………………封…………………………………………………………………线………………………………………………………………………………………..学号-----------------------------姓名----------------------if (i>100) break;}B)for( ; ; );C)int k=1000;do {++k;} while (k>=1000);D)int s=36;while (s) --s;5.下列程序执行后的输出结果是main() int a[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);A)3B)6C)9D)随机数6.下列叙述中错误的是________。
c语言大一期末考试题库及详解答案

c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中的合法标识符?A. 3aB. intC. _aD. float答案:C2. C语言中,哪个关键字用于定义一个函数?A. ifB. whileC. functionD. void答案:D3. 在C语言中,以下哪个语句可以用于输入数据?A. scanf()B. printf()C. coutD. cin答案:A二、填空题1. 在C语言中,______关键字用于声明一个变量的存储类型。
答案:static2. 一个C语言程序的执行从______函数开始。
答案:main3. 在C语言中,______运算符用于计算两个数的乘积。
答案:*三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储相同数据类型的多个元素。
数组的定义格式为:类型名数组名[常量表达式];其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组的元素个数。
数组的初始化可以使用花括号{}将初始值包围起来,例如:int arr[5] = {1, 2, 3, 4, 5}。
2. 描述C语言中的指针和引用的区别。
答案:C语言中的指针是一个变量,它存储了另一个变量的内存地址。
指针可以被重新赋值为其他地址,并且可以进行算术运算。
引用在C语言中不存在,但在C++中,引用是别名,它为另一个已存在的变量提供了另一个名字。
引用一旦被初始化后,不能被重新赋值为其他变量的引用,也不能进行算术运算。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现对一个字符串进行反转。
c语言期末考试练习题1(含答案)

一、单项选择题(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言期末考试题(C 套)
使用班级
班级_______________姓名_________________ 成绩_____________
一、填空题(每空2分,共30分)
1、 设x 为整型变量,值为1,则表达式(x&&1)= =(x%2)的值为____________
2、 若已知a=10,b=20,则表达式!a<b 的值为__________
3、 结构化程序设计所规定的三种基本控制结构是顺序结构、_____ 结构和_____ 结构。
4、 定义int i=1;执行语句 while(i++<5); 后,i 的值为______
5、 putchar 函数可以向终端输出_____字符。
6、设int i=10;则执行j=++i;后j 的值为 ____________
7、C 语言中三种常用的循环控制结构是_________ 循环、do---while 循环和_______ 循环。
8、对应scanf("a=%d,b=%d",&a,&b);语句的输入a 为3,b 为7的键盘输入格式是_______________________
9、C 源程序的基本单位是 _________ 10、设a 、b 均为整型变量,则表达式(a=2,b=5,a++,++b,a+b )的值________ 11、算术表达式xy x 23 的C 语言表达式为_____________ 12、当a=0,b=2,c=4时,则表达式a+b>0 && b==c 的值是__________ 13、设x,y,z 均为int 型变量;请写出描述”x 或y 中有一个小于z ”的表达式_____________ 二、选择题(每小题2分,共30分)
1、下列优先级最低的算符是( ) A && B ! C || D =
2、已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是( ) A 1 B 2 C –1 D -2
3、已知int i ,a ;执行语句“i=(a=2*3,a*5);”后,变量i 的值是( ) A 6 B 12 C 30 D 36
4、设j=8,则执行n=j++;n=++j;语句后,n 的值是( ) A.8 B.10 C.9 D.12
5、下面变量说明中哪个是正确的( ) A.char :a ,b ,c; B.char a; b ;c; C.char a , b , c; D.char a ,b ,c
6、以下错误的if 语句是( ) A if (x>y); B if(x= =y) x+=y ; C if (x!=y) scanf(“%d ”,&x) ;else scanf(“%d ”,&y); D if (x<y) {x++; y++;}
7、以下错误的描述是( ) A break 语句用于循环语句和switch 语句 B 在switch 语句中使用break 语句或continue 语句的作用相同 C 在循环语句中使用continue 语句是为了结束本次循环,而不是终止整个循环 D 在循环语句中使用break 语句是为了使流程跳出循环体,提前结束循环
8、若int i=11;执行下列程序后,变量i 的正确结果是( )
switch ( i )
{case 0: i+=1;break;
case 10: i+=1;break;
case 11: i+=1;break;
default: i+=1;
}
A 10
B 11
C 12
D 13
9、C 语言中,要求运算符必须是整型的运算符是( )
A %
B /
C <
D !
10、表达式10!=9的值是( )
A 0
B 1
C true
D false
11、有如下程序,该程序的执行结果是( )
main()
{ int i,sum=0;
for(i=1;i<=3;i++)
sum+=i;
printf("%d\n",sum); }
A 6
B 3
C 死循环
D 4
12、两次运行下面程序,若输入分别为6和4,则输出结果为(
)
main( )
{ int x;
scanf(“%d ”,&x);
if(++x>5) printf(“%d ”,x);}
A.7
B.6
C.7和5
D.6和4
13、在C 语言中,下面哪一个是正确的标识符( )
A 8Zse
B ±A0
C N0_1
D ’x0’
14、在C 语言中能代表逻辑“假”的是( )
A YES
B NOT
C 等于0的数
D 非0的数
15、以下程序段的输出结果是( )
main( )
{int m=9;
if (m++>9) printf(“%d\n”,m); else printf(“%d\n”,m--);}
A 8
B 9
C 10
D 11
三、判断题(每小题2分,共20分)
(1)c语言赋值运算符和关系运算的等于运算符是相同的,都是“=”。
()
(2)c的语句书写要求一行只写一个语句,一个语句也不能拆开写在几行上。
()
(3)C语言中,标识符区分大小写。
()
(4)putchar函数可以向终端输出一个字符串。
()
(5)pirntf函数中用到格式符%5d,其中数字5表示数据的宽度,如果宽度大于5,则按实际长度从左向右全部输出。
()
(6)C语言中,所有变量必须先定义后使用。
()
(7)算术运算中,各运算符的优先级相同。
()
(8)函数调用语句printf(“%-5.3s\n”,”chian”);存在错误。
()
(9)y*=x+6等价于y=y*(x+6),而不是y=y*x+6. ( )
(10)有些变量可以先使用后定义。
()
四、读程序题(每空5分,共20分)
1、读程序写结果
main ( )
{ char c=‘A’;
if (c<90)
printf(“###”);
else
printf(“***”);
}
程序的运行结果是______________
2、以下程序在运行是时,输入变量a的值为2,变量b的值为3,写出程序的运行结果
main( )
{ int a,b,t=0;
scanf(“%d%d”,&a,&b);
if (a!=0)
{t=a;a=b;b=t;}
printf (“%d,%d\n”,a,b);
}
程序的运行结果是______________
3、写出程序的执行结果
main ( )
{ char ch;
ch=getchar( ); do
{ putchar(ch);
ch=getchar( );} while(ch!=’#’);
}
若输入为ABC#,输出结果: ___________
若输入为#AB#,输出结果:___________
4.以下程序的运行结果是_________________。
main()
{
int m=5;
if(m++>5)
printf(“%d\n”,m);
else
printf(“%d\n”,m--);
}
四、完成程序:(8分)
下面程序是用来输入三角形的三边长并求出三角形面积,求三角形面积公式:area=)
)(
)(
(c
s
b
s
a
s
s-
-
-。
请在【】处填入适当内容。
#include _____________【1】
#include______________【2】
main()
{float a,b,c,s,area;
printf(“请输入三角形的边长a,b,c:”);
scanf(“%f,%f,%f”,_____________【3】);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%7.2f\n”,area);
}
若输入的a=5.0,b=7.0,c=9.0;则area=_____________【4】
五、编程题(12分)
1、输入两个数,输出较大的数。
(5分)
2、编程求:2+4+6+8+……+100(7分)。