北京理工大学C语言期中试题

合集下载

C语言程序设计教材(北理工)习题参考答案(不排除少数错误)

C语言程序设计教材(北理工)习题参考答案(不排除少数错误)

第一章:程序设计基础知识一、单项选择题1.C2.B3.B4.C5.D6.A7.C8.A二、填空题1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言6.基本功能操作、控制结构7.有穷性8.直到型循环结构9.算法10.可读性11.模块化12.对问题的分解和模块的划分三、应用题1、用如何一种熟悉的方法描述求 N 个数中最小数的算法。

2、用枚举法设计例1-4中百钱买百鸡问题的算法,并用流程图表示;3 分别用递推和递规两种算法计算斐波那契数列:f(n+2)=f(n+1)+f(n),f(1)=f(0)=1的前30项,并用流程图表示a )递推 b)递规递推公式:f(n)=f(n-1)+f(n-2) 递规公式:f(n)=f(n-1)+f(n-2) f(1)=f(0)=1b )递推 b)递规4:一般迭代法:迭代公式:x1=1-x03,收敛条件:|x0/x1|<=1e-5牛顿迭代法:f(x)=x 3-x-1,f ’(x)=3x 2-1 迭代公式:x1=x0-f(x0)/f ’(x0) 收敛条件:|x0/x1|<=1e-55:分子a,分母b ,下一项分子c ,某项t=a/b,和s 。

第一项:a=2,b=1,c=a,t=a/b,s=t第i 项:c=a+b,b=a,a=c,t=a/b,s=s+t1-26:6第二章:C程序的基本结构一、单项选择题1.B2.D3.C4.B5.A6.A7.B8.C二、填空题1.主函数2.编译系统3.函数函数4.输入输出5.头文件6..obj7.库函数8.文本三、应用题5.标识符:au_to, _auto,file,m_i_n,hello,ABC,SIN90,x1234,until,cos2x,s_3关键字:sizeof非关键字,非标识符:3id,-min,call..menu,n*m,x.y,1234,1234hello,s+3第三章习题参考答案一、单项选择题1.D2.B3.A4.C5.C6.D7.B8.D9.B 10.C11.A 12.D13.C14.C15.C16.B17.B 18.C 19.C 20.D21.A 22.D 23.D 24.D,A 25.D26.A二、填空题1.补码2.±(10-308~ 10308) 15 ~ 16 位3.实型4.单目从右向左5.函数调用6.65 ,89三、应用题1.10 92.111213.区别是:求负:单目,右结合减法:双目,左结合取址:单目,右结合按位与:双目,左结合第四章习题参考答案一、单项选择题1.D2.C3.D4.A5. D6.B7.A8.C9.B 10.B二、填空题1.一条;2.5.1690003.(1)-200 2500(2)i=-200,j=2500(3)i=-200j=25004.a=98, b=765.000000, c=4321.0000005.三种可能的输入是:(1)(1)100<回车> 25.81<回车> 1.89234<回车>(2)(2)100<空格> 25.81<空格> 1.89234<回车>(3)(3)100<TAB> 25.81<TAB> 1.89234<回车> 6.0,0,37.38.输入语句的格式是:scanf("%lf%lf%lf",&a,&b,&c); 9.13 13.000000 13.00000010. 两种方法:(1) 增加一个临时变量t。

北理工《C语言程序设计》在线作业含正确答案

北理工《C语言程序设计》在线作业含正确答案

北理工《C语言程序设计》在线作业含正确答案北理工《C语言程序设计》在线作业含正确答案一、单选题共40题,80分1、在以下对C语言的描述中,正确的是()。

A在C语言中调用函数时,只能将实参数的值传递给形参,形参的值不能传递给实参BC语言函数既可以嵌套定义又可以递归调用C函数必须有返回值,否则不能使用函数DC语言程序中有定义关系的所有函数都必须放在同一源文件中2、若在键盘上输入:283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是()。

A、scanf("%f",&c);Bscanf("8.4f",&c);Cscanf("%6.2f",&c);Dscanf("8f",&c);3、以下()不是C语言的特点。

A语言的表达能力B语言定义严格C数据结构系统化D控制流程结构化4、C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是()。

A编辑和编译B编译和连接C连接和运行D编辑和运行5、以下程序的输出是( )。

main(){char a[2][5]={“6937”,”8254”};inti,j,s=0;for(i=0;i<2;i++)for(j=0;a[i][j]>'0'&&a[i][j]<='9';j+=2)s=10*s+a[i][j]-‘0’;printf(“s=%d ”,s);}A、6385B69825C63825D6938256、已知:struct{int i; char c; float a; }test; 则sizeof(test)的值是()。

A4B5C6D772分已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a 的值为()。

A1B0C4D582分为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当时()。

大一c语言期中考试题及答案

大一c语言期中考试题及答案

大一c语言期中考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. intC. _intD. int1答案:C2. C语言中,用于定义一个字符常量的是?A. 'a'B. "a"C. aD. 1答案:A3. 下列哪个选项不是C语言中的关键字?A. intB. autoC. floatD. var答案:D4. 以下哪个选项是正确的C语言变量声明?A. int a, b;B. int a; int b;C. int a, b;D. All of the above答案:D5. C语言中,下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. All of the above答案:D7. 在C语言中,哪个运算符用于求余?A. %B. /C. *D. -答案:A8. C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C9. 下列哪个选项是C语言中的合法字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\nWorld"D. "Hello\0World"答案:A10. 在C语言中,下列哪个选项是正确的数组声明?A. int array[5] = {0, 1, 2, 3, 4};B. int array[] = {0, 1, 2, 3, 4};C. int array[5] = {0, 1, 2};D. All of the above答案:D二、填空题(每题3分,共30分)1. 在C语言中,声明一个整型变量的关键字是________。

c语言大一期中考试试题及答案

c语言大一期中考试试题及答案

c语言大一期中考试试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。

A. varB. defineC. intD. let答案:C2. 下列选项中,不属于C语言基本数据类型的是()。

A. intB. floatC. stringD. char答案:C3. 在C语言中,以下哪个符号用于表示逻辑与操作()。

A. &&B. ||C. !D. =答案:A4. 下列哪个选项是正确的C语言函数声明()。

A. int function_name(int a, int b);B. int function_name(int a; int b);C. int function_name(int a, int b)D. int function_name(int a, int b)答案:A5. C语言中,用于输入输出的库函数是()。

A. math.hB. stdio.hC. string.hD. time.h答案:B6. 下列哪个选项是C语言中正确的注释方式()。

A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释答案:B7. C语言中,用于定义数组的关键字是()。

A. listB. arrayC. tableD. int答案:B8. 下列哪个选项是C语言中正确的字符串定义方式()。

A. char str[] = "Hello";B. char str[] = 'Hello';C. char str = "Hello";D. char str[] = {"Hello"};答案:A9. C语言中,用于定义指针的关键字是()。

A. pointerB. refC. ptrD. *答案:D10. C语言中,用于定义结构体的关键字是()。

A. structB. classC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个全局变量。

北理工《C语言程序设计》在线作业含正确答案

北理工《C语言程序设计》在线作业含正确答案
A1,2,0
B2,1,0
C1,2,1
D2,1,1
18、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是( )。
A地址传递
B值传递
C由实参传给形参,并由形参传回给实参
D由用户指定传递方式
19、在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则( )。
A、6385
B69825
C63825
D693825
6、已知:struct{int i; char c; float a; }test; 则sizeof(test)的值是( )。
A4
B5
C6
D7
7
2分
已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为( )。
A1
B0
C4
C数据结构系统化
D控制流程结构化
4、C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是( )。
A编辑和编译
B编译和连接
C连接和运行
D编辑和运行
5、以下程序的输出是( )。main(){char a[2][5]={“6937”,”8254”};int i,j,s=0;for(i=0;i<2;i++)for(j=0;a[i][j]>'0'&&a[i][j]<='9';j+=2)s=10*s+a[i][j]-‘0’;printf(“s=%d ”,s);}
Dscanf("%d%d%d",&a,&b,&c);

C语言期中试卷

C语言期中试卷

C语言期中试卷《C语言程序设计》期中考试卷一、选择题1.下面程序段的运行结果是。

for(x=3; x<6; x++) printf((x%2)? (“**%d”): (“##%d\n”), x); A.**3##4**5 B.##3**4##5C.##3**4##5D.**3##4**52.下面程序的运行结果是。

#includeint main(){int i;for(i=1; i<=5; i++)switch(i%5){case 0: printf("*");break;case 1: printf("#");break;default: printf("\n");case 2: printf("&");} return 0;}A.#&&&*B.#&& &* C.#&&&*D.#&*3.下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。

#include int main( ){ int x,y,z,I,result=532;for(x=1;x<10;x++)for(y=1;y<10;y++)for( ; z<10; z++){ i=100*x+10*y+z+100*y+10*z+z;if ( )printf(“x=%d,y=%d,z=%d\n”,x,y,z);}return 0;}A1.z=x B1.z=1 C1.z=0 D1.z=yA2.i/result==1 B2.i=result C2.i!=result D2.i==result4.以下正确的描述是。

A.continue语句的作用是结束整个循环的执行B.只能在循环体和switch语句体使用break语句C.在循坏体使用break语句或continue语句的作用相同D.从多层循环嵌套中退出,只能使用goto语句5.在下面的程序中,。

北理工《C语言程序设计》在线作业

北理工《C语言程序设计》在线作业

北理工《C语言程序设计》在线作业试卷总分:100 得分:100一、单选题(共40 道试题,共80 分)1.下面程序的输出结果是()。

main(){int i,j;float s;for(i=6;i>4;i--){s=0.0; for(j=i;j>3;j--)s=s+i*j; }printf(“%f ”,s);}A.135.000000B.90.000000C.45.000000D.60.000000答案:C2.在以下对C语言的描述中,正确的是()。

A.在C语言中调用函数时,只能将实参数的值传递给形参,形参的值不能传递给实参B.C语言函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C语言程序中有定义关系的所有函数都必须放在同一源文件中答案:A3.以下()不是C语言的特点。

A.语言的表达能力B.语言定义严格C.数据结构系统化D.控制流程结构化答案:B4.已知:char s[10],*p=s,则在下列语句中,错误的语句是()。

A.p=s+5;B.s=p+s;C.s[2]=p[4];D.*p=s[0];答案:B5.以下正确的数组定义语句是()。

A.int y[1][4]={1,2,3,4,5};B.float x[3][ ]={{1},{2},{3}};C.long s[2][3]={{1},{1,2},{1,2,3}};D.double t[ ][3]={0};答案:D6.已知:int a,*p=&a; 则下列函数调用中错误的是()A.scanf("%d",&a);B.scanf("%d",p);C.printf("%d",a);D.printf("%d",p);。

北京理工大学C语言期中试题

北京理工大学C语言期中试题

北京理工大学C语言期中试题期中测试题注:答题时间120分钟一、阅读程序写结果(共35分):1.有如下程序段,运行后的输出结果是_____________:void 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\n",a,b);}2.以下程序段的输出结果是_________________void main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}3.若从键盘输入58,则以下程序段输出的结果是_____________。

void main(){int a;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}4. 下列程序段的输出结果是________________void main(){int i,a=0,b=0;for(i=1;i<10;i++){if(i%2= =0){ a++; continue; }b++;}printf("a=%d,b=%d",a,b);}5. 阅读下面程序段段,则执行后的输出结果为________________ void main(){ int a=1;for(;a<=15;)if(++a%5!=2)continue;else printf("%d",a);printf("\n");}6. 阅读下面语句,则执行后的输出结果为________________ void main(){ int a=0,b=0;while(a<15)a++;while(b++<15);printf("%d,%d\n",a,b);}7. 阅读下列程序段,程序段的输出结果是____________________ void main(){int m,n; float k; k=0;for(m=4;m>=2;m- -){ for(n=m;n>1;n- -)k=k+m*n; }printf("%f\n",k);}二、程序填空题(共25分):1.下列程序的输出结果是16.00,请填空。

C语言期中测试(含答案)

C语言期中测试(含答案)

C语言期中测试(开卷测试,答案写在白纸上)一.选择题(1)C语言源程序名的后缀是A).exe B).C C).obj D).cpp(2)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A5e-3 0Xa23 4c1.5 10,000-0xf 4.5e0 0abc 3.e5(3)以下正确的字符串常量是A)"\\" B)’abc’C)OlympicGames D)"" (4) 表达式3.6-5/2+1.2+5%2的值是A)4.3 B)4.8 C)3.3 D)3.8(5)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(6)以下叙述中错误的是A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数(7)以下叙述中错误的是A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令(8)以下数组定义中错误的是A)int x[][3]={0};B)int x[2][3]={1,2,3,4,5,6};C)int x[][3]={{1,2,3},{4,5,6}};D)int x[2][]={1,2,3,4,5,6};(9)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(10)有以下程序段int j;float y;char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(11)有以下程序#include<stdio.h>main(){int y=9;for( ; y>0;y--)if(y%3= =0)printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421 (12) 有以下程序#include<stdio.h>int a=4;int f(int n){int t=0;static int a=5;if(n%2){a=6;t+=a++;}{ a=7;t+=a++;}return t+a++;}void main(){int s=a,i=0;for(;i<2;i++)s+=f(i);printf ("%d\n",s);}程序运行后的输出结果是A)24 B)28 C)32 D)36(13) 要求通过while循环不断读入字符,当读入字母N时结束循环。

C语言期中试卷(含答案)

C语言期中试卷(含答案)

C语⾔期中试卷(含答案)《 C语⾔》课程期中考试试卷⼀. 在A B C D四个选项中,选择⼀个正确的答案填⼊括号内( )1、⽤char定义的变量在IBM PC机中能表⽰的数的范围是:A) 0 ~+255 B) 0 ~+65535C) -128 ~+127 D) 只能存字符,不能存数( )2、设有int k=2; 则执⾏printf(“%d”,k++);的输出为:A) 0 B) 1 C) 2 D) 3()3、在while(!x)中,!x与______等价。

A) x==0 B) x!=0 C) x==1 D) x!=1()4、设有声明int value=?5?;,则执⾏下列选项的赋值语句后,value的值不等于5的是_____。

A.) value=value - ?0?; B) value=value - 0x30;C) value=value - 49; D) value=value - ?\060?;()5、如int k=7;float x=2.5,y=4.7; 则表达式 x+k%3*(int)(x+y)%2/4 运算后的值是:A) 0 B) 2 C) 2.5 D) 2.75( ) 6、若有int a,b;则语句:printf("%d",(a=2)&&(b=-2);的输出结果是:A)⽆输出 B)结果不确定 C)-1 D)1( ) 7、设有int a=2; 则执⾏printf("%d",5>a>1);的输出为:A)0 B)1 C)2 D)3( ) 8、执⾏语句c=(a=2,a+1,b=a++);后, a,b,c的值依次为:A)2,3,4 B)3,3,3 C)4,5,4 D)3,2,2( )9、以下程序的输出结果是A)2 0 B)3 1 C)3 2 1 D)2 1 0main( ){ int n=4;while(n--)printf("%d ",--n);}( )10、给出以下定义:char x[ ]="abcdef";char y[ ]={'a','b','c','d','e','f'};则正确的叙述为A) 数组x和数组y等价 B) 数组x和数组y的长度相同C) 数组x的长度⼤于数组y的长度 D) 数组x的长度⼩于数组y的长度( )11、若对⼀个函数调⽤在前, 定义在后,C语⾔将视其返回值为__________类型。

北理工《C语言程序设计》期末考试精选题汇总【含答案解析】 06

北理工《C语言程序设计》期末考试精选题汇总【含答案解析】 06

[试题分类]:C语言程序设计
1.下列叙述中,错误的是
A. 分号是C语言语句的必要组成部分
B. C语言程序的入口不一定是主函数main
C. C语言程序基本组成单位是函数
D. C语言程序的注释可以写在语句后面
答案:B
题型:单选题
知识点:第2章 C语言概述
难度:1
2.下列选项中,所有符号均不是C语言关键字是
A. scanf,define
B. auto,if
C. else,for
D. switch, do
答案:A
题型:单选题
知识点:第2章 C语言概述
难度:1
3.下列选项中,不能作为C语言常量的是
A. 0xA5
B. 2.5e-2
C. 3e2
D. 0582
答案:D
题型:单选题
知识点:第3章数据类型与运算规则
难度:1
4.C语言中,不能进行++和--运算的数据类型是
A. int
B. long
C. double
D. 指针。

C语言期中考试题目及答案

C语言期中考试题目及答案

一、选择题:【1】在 C 语言中,用户能使用的正确标识符是。

A) 5f B) _for C) struct D) _f.5答案: B分析:标识符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线;大小写敏感;不能使用关键字;最长 32 个字符。

【2】以下那个是正确的 C 语言常量。

A) 0678 B) '\0101' C) 1.2E3.5 D) 123L答案: D【3】以下对 C 语言源程序有关常识正确的描述是。

A) main 函数必须位于文件的开头B) 每个语句必须单独一行C) 标识符中大小写字母没有区别D) 宏定义#define 部分不一定要放在程序的最开头位置答案: D【4】以下 for 循环的执行次数是。

for(x=0,y=0;(y=123)&&(x<4);x++)A)是无限循环 B)循环次数不定 C) 执行 4 次 D)执行 3 次答案: C分析:若要判断(y=123)&&(x<4)假,因为 y=123 永远为真,所以只需要判断 x<4 为假即可。

【5】对 for(表达式 1;;表达式 3)可理解为。

A) for(表达式 1;0;表达式 3)B) for(表达式 1;1;表达式 3)C) for(表达式 1; 表达式 1;表达式 3)D) for(表达式 1; 表达式 3;表达式 3)答案: B【6】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。

A) while 循环执行 10 次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次答案: C分析:因为 k=0 为假,所以程序不执行其后的语句。

【7】C 语言中 while 和 do-while 循环的主要区别是。

A) do-while 的循环体至少无条件执行一次B) while 的循环控制条件比 do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句答案: A【8】设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d) 后 n 的值为。

北京理工大学网络教室C语言编程题库及答案绝对

北京理工大学网络教室C语言编程题库及答案绝对

1.Hello world.输入:无输出:Hello world.程序:#include<>int main(){printf("Hello world.\n");return 0;}2.Welcome to Beijing.程序:#include <>int main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");return 0;}3. 求A+B输入:整数1 整数2输出:整数1+整数2=和程序:#include<>int main(){int a,b;scanf("%d",&a);scanf("%d",&b);printf("%d+%d=%d\n",a,b,a+b);return 0;}4. 求 x 的 3次方输入:一个整数。

输出:该整数的 3 次方值。

程序:#include<>int main(){int x;scanf("%d",&x);printf("%d\n",x*x*x);return 0;}5. 学习打印你的第一个图形编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。

程序:#include<>int main(){printf(" *\n");printf(" ***\n");printf(" *****\n");printf("*******\n");return 0;}6. 一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。

例如输入格式为:123 444 输出:分别输出按照整型数据进行 +、-、*、/、* 之后的运行结果。

C语言程序设计期中复习.ppt

C语言程序设计期中复习.ppt
2019/3/29 4
北京理工大学 李书涛
§1
基本数据类型
C语言的基本数据类型
整型 int 基本类型 字符型 char 单精度 float 实型
基本 常量 类型 变量
双精度 double
按照数据在程序中的取值分为两类: 值保持不变-----常量
x=2 + y
值随程序运行变化-----变量
2019/3/29 5
printf(“%c,%c,%c\n”,a,b,c); 输出: A,a,0 printf(“%c,%c,%c\n”,x,y,z); 输出: A,a,0
2019/3/29 22
北京理工大学 李书涛
一个字符变量只 1. 定义形式: char 变量表 能包含一个字符 2. 占存储空间 一个字节
3. 输入输出形式 %c 4. 字符型数据在内存中以相应的ASCII值存储
数组类型
char
实型(浮点型)
单精度实型 float 双精度实型 double
数据类型
构造类型 指针类型
结构类型
struct
联合类型
枚举类型
union
enum
空类型(无值类型)
2019/3/29 3
void
李书涛
北京理工大学
§1
基本数据类型
数据类型的含义
1. 不同类型数据采取不同的存储形式; 2. 不同类型数据在内存中占有不同的 存储空间; 3. 不同类型数据对应不同的取值范围; 4.不同类型数据确定了允许对其进行不 同的操作类型。
三、字符串常量
“china”
字符串结 束标记 2. n个字符组成的字符串常量,在 内存中占空间为 n+1 个字节。
1. 双引号内的一串字符

北京理工大学乐学C语言编程汇编

北京理工大学乐学C语言编程汇编

2018学年第一学期C语言试题汇编目录:(O(∩_∩)O同学们乐学C语言学习的好助手来啦!)19.判断三角形形状20. 【小学生】计算时钟的夹角22.【小学生】找出最大素数24.再算日期(根据星期求日期)25.【小学五年级】确定母亲节27.【中学】寻找特殊偶数28.【中学】寻找阿姆斯特朗数30.【中学】求最后3位数值31.【图形】数字菱形32.【图形】空心的倒三角型34.【日期】计算后续日期35.【中学】零钱换整钱36.【图形】空心数字梯形*37. 晕(回形方阵)38. 【中学】科学记数法*39. 【中学】整数问题40. 数制转换41. 计算通用产品代码(UPC)的校验位42. 五年级小学生的题目43. 【日期】黑色星期五(数组)H【日期】的奥秘*H 高精度加减法*44. 判断二进制对称数45. 【字符】合并字符串46. 猜数字47. 【大学】北理工的恶龙48.【数列】等值数列段49. 扫雷50. 【字符】压缩文本文件H. 安全的密码*H. 子数整除*51. 小蜜蜂52. 回文字符串——递归53.计算子字符串个数54. 【小学递归】杀鸡用牛刀——要用递归啊!55. 【中学】求最大公约数——递归56.【大学递归】求解平方根57. 【数列递归】求序列之和——递归H 铺地板*(之字方阵)58. 车辆限行59.采用指针对数组进行排序*60.合并排序61.对一个整数数组排序H 二维数组排序*62. 全能战士63. 三角形是一个永不过时的话题64. 学生成绩排序65.大家一起做游戏*66. 【大学】恭喜发财利是窦来67. 建立正序链表68. 链表排序69. 链表移动70. 求循环节H. 链表处理*其它:1.期中测试12.期中测试23.期中测试34.期中测试(周青班)15. 期中测试(周青班)26. 期中测试(周青班)37.计算字符串中某字符串出现次数8.编写程序:从键盘输入两个字符串,找出其中没有同时出现在两个字符串中的字符。

北理C语言作业及答案2

北理C语言作业及答案2

34 北理工的恶龙成绩: 10 / 折扣: 0.8背景:最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟,于是,校长下令召集全校所有勇士杀死这只恶龙。

要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。

而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。

校长想花最少的学分数杀死恶龙,于是找到你寻求帮助。

输入:第一行龙头数n , 勇士人数m (1<=n, m<=100 )接下来n 行,每行包含一个整数,表示龙头的直径接下来m 行,每行包含一个整数,表示勇士的身高l输出:如果勇士们能完成任务,输出校长需要花的最小费用;否则输出“ bit is doomed! ”测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1. 2 3↵2.5↵3.4↵4.7↵5.8↵6.4↵以文本方式显示1.11↵1秒64M 0测试用例2 以文本方式显示1. 2 1↵2.5↵3.5↵4.10↵以文本方式显示1.bit is doomed!↵1秒64M 0#include<stdio.h>void main(){int s=0,t,i,j,m,n,a[100],b[100],c[100]; for(i=0;i<=99;i++)a[i]=0,b[i]=0,c[i]=0;scanf("%d%d",&m,&n);for(i=0;i<=m-1;i++)scanf("%d",&a[i]);for(i=0;i<=n-1;i++)scanf("%d",&b[i]);if(m>n)printf("bit is doomed!\n");else{for(i=0;i<=m-1;i++)for(j=i;j<=m-1;j++){if(a[i]>a[j]){t=a[i],a[i]=a[j],a[j]=t;}}for(i=0;i<=n-1;i++)for(j=i;j<=n-1;j++){if(b[i]>b[j]){t=b[i],b[i]=b[j],b[j]=t;}}t=0;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)if(a[i]<=b[j]){c[t]=b[j];t++;b[j]=0;break;}if(t<m)printf("bit is doomed!\n");else{for(i=0;i<=t;i++)s=s+c[i];printf("%d\n",s);}}}35 杀鸡用牛刀——要用递归啊!成绩: 5 / 折扣: 0.8背景:哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

期中测试题
注:答题时间120分钟
一、阅读程序写结果(共35分):
1.有如下程序段,运行后的输出结果是_____________:
void 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\n",a,b);
}
2.以下程序段的输出结果是_________________
void main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
3.若从键盘输入58,则以下程序段输出的结果是_____________。

void main()
{
int a;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
4. 下列程序段的输出结果是________________
void main()
{
int i,a=0,b=0;
for(i=1;i<10;i++)
{
if(i%2= =0){ a++; continue; }
b++;
}
printf("a=%d,b=%d",a,b);
}
5. 阅读下面程序段段,则执行后的输出结果为________________
void main()
{ int a=1;
for(;a<=15;)
if(++a%5!=2)continue;
else printf("%d",a);
printf("\n");
}
6. 阅读下面语句,则执行后的输出结果为________________
void main()
{ int a=0,b=0;
while(a<15)a++;
while(b++<15);
printf("%d,%d\n",a,b);
}
7. 阅读下列程序段,程序段的输出结果是____________________
void main(){
int m,n; float k; k=0;
for(m=4;m>=2;m- -)
{ for(n=m;n>1;n- -)k=k+m*n; }
printf("%f\n",k);
}
二、程序填空题(共25分):
1.下列程序的输出结果是16.00,请填空。

void main()
{
int a=9, b=2; float x=【1】, y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n", z );
}
2. 下面程序的功能是把316表示为两个加数的和,使两个加数分
别能被13和11整除,请选择填空。

void main()
{
int i=0,j,k;
do
{
i++; k=316-13*i;
}while(【2】);
j=k/11;
printf("316 = 【3】*%d + 【4】*%d",i,j);
}
3. 函数fun的功能是:根据以下公式求p的值,结果由函数值返回。

m与n为两个正数且要求m>n。

例如:m=12,n=8时,运行结果应该是495.000000。

请在题目的空白处填写适当的程序语句,将该程序补充完整。

float fun (int m, int n)
{ int i; double p=1.0;
for(i=1;i<=m;i++)_【5】_;
for(i=1;i<=n;i++)_【6】_;
for(i=1;i<=m-n;i++)p=p/i;
return p;
}
void main ()
{ printf ("p=%f\n",fun (12,8)); }
4.下面程序的功能是将一个整数的值转换成二进制数,并将所得二进制数的每一位依次在显示器上输出,请填空。

void main()
{ int x,int b;
_【7】_;
do
{ b=x% _【8】_;
putchar(_【9】_);
x/= _【10】_;
} while(_【11】_ );
}
5. 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.txt的新文件中,请填空。

void main()
{
FILE *fp; char ch;
if((fp=fopen(_【12】_))==NULL)exit(0);
while((ch=getchar())!='@')_【13】_;
fclose(fp);
}
三、编程题(共40分):
1.编程序,要求输入年月日时分秒,输出该年月日时分秒的下一秒。

如输入2012年4月10日23时59分59秒,则输出2012年4月11日0时0分0秒。

(8分)
2.编写程序,它的功能是:根据以下公式求X的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):(10分)
X/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9 +...+1×2×3×...×n/3×5×7×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14...。

3.最少钱币数问题:(12分)
这是一个古老而又经典的问题。

用给定的几种钱币凑成某个钱数,一般而言有多种方式。

例如:给定了6种钱币面值为2元、5元、10元、20元、50元、100元,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。

显然,最少
需要2个钱币才能凑成15元。

你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。

4.编程序计算正切函数的值:(10分)
arctan x = x - x3/3 + x5/5 - ... (x≤1)。

相关文档
最新文档