哈尔滨工业大学C语言期末试1
哈尔滨工业大学2003-2006年C语言 考试题

哈工大2003年春季学期C语言考试题说明:请将答案写在答题纸的相应题号后面!!!!!一、填空题:(24分每空1.5分)1.已知:int *p,a; 则语句p=&a;中的运算符&的含义是( 1 )。
2.凡在函数体内没有明显存储类别说明的变量是( 2 )。
3.已知:struct{ int k;char c;float a;}test; 则sizeof(test)的值是(3 )。
4.程序填空:(1)下面的程序是main函数利用函数abcd来交换main中的两个变量的值。
# include <stdio.h>main(){float x=10,y=20;abcd( 4 );printf(“%f,%f”,x,y);}abcd(x,y)( 5 );{float temp;temp=( 6 );( 7 );( 8 );}(2)下面的程序是使用冒泡法对输入的10个数据从小到大排序。
排好序的10个数分两行输出。
#include <stdio.h>main(){ ( 9 );int j,k;printf(“ input 10 numbers please \n”);for(j=0;( 10 );j++)scanf(“%f”,&a[j]);printf(“\n”);for(j=0;( 11 );j++)for(k=0;( 12 );k++)if( 13 ){ x=a[k];( 14 );a[k+1]=x;}printf(“The sorted 10 numbers:\n”);for(j=0;( 15 );j++){ if( 16 )printf(“\n”);printf(“%f\t”,a[j]);}printf(“\n”);}二、单项选择题:(20分每题2分)1.C语言中基本数据类型包括( )。
A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、实型2.已知int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是()。
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. 2variableB. _variableC. variable2D. variable-2答案:C2. 下列哪个选项是C语言中的关键字?A. defineB. typedefC. includeD. using答案:B3. 在C语言中,以下哪个选项表示的是逻辑与运算?A. &&B. ||C. !D. =答案:A4. C语言中,以下哪个选项是正确的注释方式?A. /* 这是注释 */B. // 这是注释C. /* 这是注释 */D. # 这是注释答案:A5. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B6. C语言中,以下哪个选项是正确的数组初始化方式?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:A7. 在C语言中,以下哪个选项是正确的函数声明?A. int func(int a, int b);B. int func(int a, int b) {}C. int func(int, int);D. int func(int a, int b) = 0;答案:A8. 以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = {'H', 'e', 'l', 'l', 'o'};C. char str[] = "Hello";D. char str[] = {'H', 'e', 'l', 'l', 'o'};答案:A10. C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50];} student;D. struct Student {int id;char name[];} student;答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用______运算符可以取变量的地址。
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语言期末考试题库大题及详解答案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语言试题

哈工大 2008 年 秋 季学期C 语言 试题考成绩和卷面笔试成绩各自所占比例折合后累加计算。
一、填空题(6分,每题1分)1.设变量定义为“int x,y[10];”,则“_________”与“*(y+x)”等效。
2.如果在程序中使用了strcmp 库函数,则程序前面要写#include "________"。
3.1.37×1042在C 语言中写作________4.把C 语言源程序翻译成机器语言目标程序的过程称为“__________”,翻译得到的目标程序扩展名为“__________”。
5.已知x 是double 型变量,“scanf("________",&x);”用于从键盘读取数据存放到x 中。
6. 已知:“#define M(x,y) x*y ”,则表达式“M(5+4,3-1)”的值为________。
二、单项选择题:(10分,每题2分)1.判断字符串s1与字符串s2相等,应当使用: 。
A) if (s1 = s2)B) if (strcmp(s1, s2))C) if (!strcmp(s1, s2)) D) if (strcmp(s1, s2) = 0)2.用“if(0<x<3) x=x+1;”实现“如果x 在0到3之间则将其值加1”的操作,________。
(A) 正确(B) 有语法错误 (C) 有逻辑错误 (D) 有连接错误3.#include<stdio.h>#include<string.h> main() {printf("%d\n", strlen("IBM\n012\t\"\\\0")); }则程序运行后的输出结果是。
A) 10 B) 11 C) 16 D) 124.函数定义的首部写作“int func( )”,x、y是int型变量,则__________是正确的调用。
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、 intB、 floatC、 doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是 ( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),*的值是( ) 。
#include<stdio.h>main(){int *;float y;scanf("%3d%f",&*,&y);}A、 12345B、 123C、 45D、 3458、若有以下定义int a,b; float *,则正确的赋值语句是 ( )A、 a=1,b=2B、 b++;C、 a=b=5D、 b=int(*);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、设*、y和z是int型变量,且*=3,y=4,z=5,则下面表达式中值为0是 ( ) 。
大学生C语言期末考试试题汇总

大学生C语言期末考试试题汇总第1-3章习题一、单项挑选题1C语言属于()。
A.机器语言B.低级语言C.中级语言D.高级语言2一个C程序可以包含随意多个不同名的函数,但有且仅有一个。
A.函数B.主函数C.includeD.过程3系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才干运行?A.编辑?编译B.编译?衔接C.编辑?改错D.编辑?衔接4C语言程序从开头执行。
A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数5C语言程序是由构成的。
A.一些可执行语言B.main函数C.函数D.包含文件中的第一个函数6一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是。
A.有效性B.有穷性C.有零个或多个输入D.有零个或多个输出7设变量a是整型,f是实型,i双精度型,则表达式10+’a’+i*f 值的数据类型。
A.intB.floatC.doubleD.不确定8在C语言中,变量所分配的内存空间大小是由。
A.均为一个字节B.由用户自己定义C.由变量的类型打算D.是随意的9执行scanf (“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分离为3和4,则正确的输入办法为。
A. 3 ,4B.a:3 b: 4C.a=3,b=4D. 3 410在算术表达式中允许使用的括号类型是。
A.{ }B.[ ]C.( )D.以上三项皆错11存储以下数据,占用存储字节最少的是。
A. 0B. ‘0’C. “0”D. 0.012设n=10,i=4,则运算n%=i+1执行后,n 的值是。
A.0B.3C.2D.113C语言中运算对象必需是整型的运算符是。
A.%B. /C. =D.〈=14已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是.A .0 B. 1 C. 5 D. 615若有以下类型说明语句:char w;int x;float y;double z;则表达式w-x*y/z的结果为类型A.floatB.charC.intD.double16在C语言的库函数中,可以输出char型变量x值的语句是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈尔滨工业大学C语言期末试卷(2007秋季人文学院笔试A卷)
一、填空题(共20分,每空2分)
1.C语言中简单数据类型包括、、。
2.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。
3. char *p[10];这条语句的含义是:__ ___ _ _ 。
4.设有语句“int a=3;”,执行语句“printf(”%d”,-a++ );”后,输出结果是 , 变量a的值是。
5. 如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为。
6. 在C语言中,可以用定义一种新的数据类型。
二、选择题:(共16分,每题2分)
1.在C语言中,函数的隐含存储类别是()。
A) auto B) static C) extern D) 无存储类别
2.若用数组名作为函数调用时的实参,则实际上传递给形参的是()。
A.数组的首地址 B. 数组的第一个元素值
C.数组中全部元素的值 D. 数组元素的个数
3.已知 struct sk
{
int a;
float b;
}data,*p;
若有p=&data,则对data中的成员a正确引用是()
A. (*p).data
B.(*p).a
C.p->data.a
D. p.data.a
4.在while(x)语句中的x与下面条件表达式等价的是:。
A. x!=0
B. x==1
C. x!=1
D. x==0
5.二维数组a有m行n列,则在a[i][j]之前的元素个数为()。
A. j*n+i
B. i*n+j
C. i*n+j-1
D. i*n+j+1
6.设有声明语句:int a=1,b=0;则执行以下语句后输出为:。
switch (a)
{
case 1:
switch (b)
{
case 0: printf("**0**");
break;
case 1: printf("**1**");
break;
}
case 2: printf("**2**");
break;
}
A **0**
B **0****2**
C **0****1****2**
D 有语法错误
7.以下程序运行结果是()
main()
{char s[]=”Address”;
printf(”%d\n”, strlen(s));
}
A) 7 B) 8
C) 9 D) 10
8.以下不正确的描述是()
A) 在函数外部定义的变量是全局变量
B) 在函数内部定义的变量是局部变量
C) 函数的形参是局部变量
D) 局部变量不能与全局变量同名
三、写出下列程序的运行结果。
(15分,每题3分) 1.#include<stdio.h>
int Fun(int x)
{
static int y = 0;
y += x;
return y;
}
main()
{
int x = 10, y = 0, k;
for(k=0; k<2; k++)
y = Fun(x);
printf("y = %d\n", y);
}
}
运行结果是:
2.#include<stdio.h>
main ( )
{
char a[] = "programming" , b[] = "language" ; char *p1, *p2 ;
int i;
p1 = a;
p2 = b;
for (i=0; i<7; i++)
{
if (*(p1+i) == *(p2+i))
printf("%c" ,*(p1+i)) ;
}
printf("\n");
}
运行结果是:
3. #include <stdio.h>
main()
{
int a=10;
{
int a=15;
printf(“a.1=%d,”,a);
}
printf(“a.2=%d\n”,a);
}
运行结果是:
4.#include <stdio.h>
main()
int i=0;
while(1)
{
printf(“*”);
i++;
if(i<3) break;
}
printf(“\n”);
}
运行结果是:
5.int runc(int a,int b)
{return(a+b);}
main()
{
int x=2,y=5,z=8,r;
r=runc(runc(x,y),z);
printf(“%d\n”,r);
}
执行结果是:
四、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(16分,每空2分)
1. 下面这个程序功能:读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。
读入5个数据后,程序结束运行。
#include <stdio.h>
main()
{
int i, n;
for (i=1; i<=5; i++)
{
printf("Please enter n:");
scanf("%d", &n);
if (n <= 0) _____________;
printf("n = %d\n", n);
}
printf("Program is over!\n");
}
2. 韩信点兵。
韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。
下面程序的主要功能是计算韩信至少有多少兵。
#include <stdio.h>
main()
{
int x = 1;
int find = 0;
for (x=1; ________; x++)
{
if (x%5==1 && x%6==5 && x%7==4 && x%11==10)
{
printf(" x = %d\n", x);
____________;
}
}
}
3.计算1+1/2+1/4+…+1/50的值,并显示出来。
main()
{
int i=2;
float sum=1.0;
while(i<= )
{ sum+=1/ ;
i+=2;
}
printf(“sum=%f\n”,sum);
}
4.Fibonacci数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。
下述程序计算此数列的前20个数,且每行输出5个数,请填空。
#include <stdio.h>
main()
{
int f,f1=1,f2=1;
int i;
printf(“%6d,%6d”,f1,f2);
for (i=3;i<=20;i++)
{
f= ;
printf(“%6d”,f);
if( )
printf(“\n”);
f1=f2;
;
}
}
五、编程(33分,前3题各8分,第4小题9分)
1.编写函数实现两个整型变量值的交换。
2. 从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。
3.从键盘任意输入某班20个学生的成绩,输出最高分并统计出不及格
4.利用函数求出两个正整数的最大公约数。