C语言作业3

合集下载

C语言作业及答案3

C语言作业及答案3

)。
A)char
B) void
C)float
D)int
8、设有说明 int (* prt)[M]; 其中的标识符 prt 是(
)。
A)M 个指向整型变量的指针
B)指向 M 个整型变量的函数指针
C)一个指向具有 M 个整型元素的一维数组的指针
D)具有 M 个指针元素的一维指针数组,每个元素都只能指向整型变量
)。
4、C 程序以函数为单位进行编译(
)。
5、由多个源文件组成一个程序时,主函数只能出现在一个源文件中(
)。
6、从变量的作用域角度来分,可以分为静态变量和动态变量(
)。
7、如果一个字符数组中包含一个以上结束符’\0’,则遇最后一个’\0’时输出才结束(
)。
8、gets( )函数的作用是从终端输入一个字符串到字符数组,并且将’\0’也装入该数组(
9、已知函数说明语句:void *fx( );则它的含义是(
)。
A)函数 fx 的返回值是一个空类型的指针
B)函数 fx 的返回值可以是任意的数据类型
C)函数 fx 无返回值
D)指针 fx 指向一个函数,该函数无返回值
10、对于下述定义,不正确的叙述是(
)。
union data
{ int i;
char c;
C)9,9
D)10,10
4、以下叙述正确的是()。
A)可以把 define 和 if 定义为用户标识符
B)可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符
C)可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符
D)define 和 if 都不能定义为用户标识符

C程序设计语言书面作业作业题(3)

C程序设计语言书面作业作业题(3)

C语言书面作业(三)一、选择题1.写出下面程序段的输出结果。

main(){ int x=2;while(x--);printf(“%d\n”,x);}2.下面程序的输出结果是__________。

main(){int i;for (i=0;i<10;i++);printf (“%d,i);}A) 0 B) 123456789 C) 023456789 D) 103.下面程序段的运行结果为_______for (i=1; ++i<4;);printf(“%d\n”,i);A) 3 B) 4 C) 5 D) 不定4.在执行以下程序时,如果从键盘上输入ABCdef后回车,则输出_____ #include<stdio.h>main( ){char ch;while((ch=getchar())!=‘\n’){ if (ch>=‘A’&&ch<=‘Z’) ch=ch+32;else if (ch>=‘a’&&ch<=‘z’) ch=ch-32;printf(“%c”,ch);}printf(“\n”);}A) ABCdef B) abcDEF C) abc D) DEF5.下列程序段中,不是死循环的是________A) int i=100; while(1){ i=i%100+1;if (i>100) break; }B)int k=0;do{++k;} while (k>=0);- 1 -C) for (;;); D)int s=3379;while (s++%2+s%2)s++;6.以下程序的输出结果是__________main( ){int a,b;for (a=1,b=1;a<=100;a++){if (b>=10 ) break;if (b%3==1){b+=3; continue;}}printf(“%d\n”,a);}A) 101 B) 6 C) 5 D) 47.执行以下程序时,为了使输出结果为t=4。

c语言程序设计练习3

c语言程序设计练习3

在一个C程序中(B)。

A、main函数必须出现在固定位置B、main函数可以在任何地方出现C、main函数必须出现在所有函数之前D、main函数必须出现在所有函数之后若有int a[][]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(C)。

A、&a[0][1],3B、非法,2C、&a[1][0],2D、a[0][0],4fseek函数的正确调用形式是(D)。

A、fseek(起始点,位移量,文件类型指针)B、fseek(位移量,起始点,fp)C、fseek(文件类型指针,起始点,位移量)D、fseek(fp,位移量,起始点)C语言程序中,当调用函数时(B)。

A、实参和虚参可以共用存储单元B、实参和虚参各占一个独立的存储单元C、计算机系统自动确定是否共用存储单元D、可以由用户指定是否共用存储单元以下标识符中,不能作为合法的C用户定义标识符的是(C)。

A、toB、answerC、defineD、_ifchar *s1="hello",*s2;s2=s1;则(D)。

A、s2指向不确定的内存单元B、s1不能再指向其它单元C、不能访问"hello"D、puts(s1);与puts(s2);结果相同有如下程序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);}该程序的输出结果是 BA、a=1,b=1B、a=2,b=1C、a=1,b=0D、a=2,b=2下列正确的标识符是 DA、%yB、a+bC、6aD、_do若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是(B)。

A、"ab"B、"wb+"C、"ab++"D、"rb+"int a[10];合法的数组元素的最小下标值为(B)。

C语言第三次大作业

C语言第三次大作业

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★C语言第三次大作业班级:机电***姓名:*******学号:*********★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★题目一:利用数组编写一个简单的成绩管理系统,要求有效依据至少150条,利用程序设计模块化思想,自定义函数不少于5个。

其他要求:1、班级的人数由用户键盘输入;2、录入学生学号和考试成绩3、数据分析功能包括计算课程总分和平均分、按成绩由高到低排出成绩表、按学号由小到大排出成绩表、可按学号查询学生成绩及排名、按优秀(90~100),良好(80~89),中等(70~79),及格(60~69),不及格(<60)5个类别统计成绩并计算百分比和输出每个学生的学号、成绩及课程总分和平均分。

1、题意及算法分析根据题目要求,结合程序设计模块化思想,可自定义7~9个函数,分别实现相应的功能。

根据题目要求可定义学号数组为整形数组,平均分、成绩数组为float 类型;定义宏常量N,使得数组足够大;成绩和学号的排序可采用交换法、选择法、插入排序、冒泡法、快速排序法等,本题采用交换法排序,在采用交换法排序的时候可以通过定义一个标志变量(中间变量)实现;通过学号查找成绩可通过线性查找(顺序查找)或折半查找,本题采用的是顺序查找,采用顺序查找可以用for循环语句实现,查找次数最多为总人数n。

统计等级时,利用整数除法(区别于实数除法),结合switch语句和计数控制循环语句即可得到不同等级所占百分比。

菜单功能选择是可使用switch-case条件结构。

要注意的是数组的下标从0开始;只能逐个引用数组元素,不能一次引用整个数组;数组做函数形式参数时,数组的大小可以不出现在数组名后面的方括号内;被调用函数的实际参数用数组名或数组定义式。

2、NS流程图传统流程图:3、调试及改错1、缺少取地址运算符“&”写好程序后,解决ERROR后会情不自禁的执行程序,一执行便弹出如下对话框,回过头看程序,发现int read(long number[],float score[])函数中“printf("请输入学生总人数:"); ret=scanf("%d",n);”的语句中出现一个明显的低级错误,缺少取地址运算符“&”。

北理C语言作业及答案3

北理C语言作业及答案3

C语言作业3 43. 缩写展开成绩: 10 / 折扣: 0.8在保存字符串时,对出现在连续位置的若干个字符,如这些字符在ASCII表中也是连续出现,则可以将这些字符使用缩写形式进行保存,以节省保存空间。

例如用A-Z表示ABCD...XYZ,1-5表示12345,c-f表示cdef。

输入:包含缩写形式的字符串输出:将缩写形式进行还原后的字符串说明:只分别对大写字母、小写字母和数字进行压缩,对于形如9-A,a-C这样的缩写不进行处理。

测试输入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1.0-9↵以文本方式显示1.0123456789↵1秒64M 0测试用例2以文本方式显示1.G-I↵以文本方式显示1.GHI↵1秒64M 0测试用例以文本方式显示1.ABDG-K035-9abd-h↵以文本方式显示1.ABDGHIJK0356789abdefgh↵1秒64M 0#include <stdio.h>int main(){int i=0;char s[100];gets(s);while(s[i]!='\0'){if(s[i+1]!='-'){printf("%c",s[i]);i++;}else{if(s[i+2]>s[i] && ((s[i]<=57)+(s[i+2]<=57)!=1) && (s[i]<=57||s[i]>=65)){while(s[i]!=s[i+2]){printf("%c",s[i]++);}i+=2;}else printf("%c",s[i++]);}}printf("\n");return 0;}44. 函数递归成绩: 10 / 折扣: 0.8编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。

C语言平时作业3(实用荟萃)

C语言平时作业3(实用荟萃)

实验题目标准库函数使用与编译预处理实验时间 2013-5-26 实验地点DS1421实验成绩实验性质□验证性□设计性□综合性教师评价:□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范;其他:评价教师签名:一、实验目的1、理解变量的作用域和生存期的概念;2、掌握全局变量和局部变量的定义方法以及其作用域的确定方法,并能进行区别;3、理解“文件包含”处理和“工程文件”的方法概念及区别,并学会应用;4、理解局部变量对同名全局变量的屏蔽作用,掌握在程序流程的执行点选择确定操作变量的方法;5.理解和掌握最大公约数和最小公倍数的求解方法及程序实现。

二、实验项目内容(实验题目)编程实现功能:求2个数的最大公约数和最小公倍数。

要求用函数实现,并且将主函数和这两个函数分别存入3个文件“sy3-学号-a.cpp”,“sy3-学号-b.cpp”,“sy3-学号-c.cpp”中。

然后用文件包含和工程文件2种方法实现多文件编译链接。

三、源程序(实验过程或算法)1、“#include”方式:“a.cpp”文件如下:#include<stdio.h>#include "e:\20126074\sy3-20126074-b.cpp"#include "e:\20126074\sy3-20126074-c.cpp"long b(int m,int n);long c(int m,int n,int r);void main(){long m1,n1,g,l;printf("This is in File sy3-2010-a.cpp\n");printf("*** input: m1,n1 ****\n");scanf("%ld,%ld",&m1,&n1);g=b(m1,n1);printf("g=%ld\n",g);l=c(m1,n1,g);printf("l=%ld\n",l);}“b.cpp”文件如下:#include<stdio.h>long b(int m,int n){int r,t;printf("This is in File sy3-20126074-b.cpp\n");if(m<n)t=m,m=n,n=t;while(n!=0){ r=m%n;m=n;n=r;}return m;}“c.cpp”文件如下:#include<stdio.h>long c(int m,int n,int r){long bs;printf("This is in File sy3-20126074-c.cpp\n");bs=m*n/r;return bs;}对“a.cpp”文件进行编译、连接、运行,得到结果。

c语言课外作业3

c语言课外作业3

第5、6、7章函数、编译预处理、数组练习题一、选择题1.以下正确的说法是_______。

A.用户若需调用标准库函数,调用前必须重新定义。

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义。

C.系统根本不允许用户重新定义标准库函数。

D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,由系统自动去调用。

2.以下正确的函数形式是_______。

A.double fun( int x , int y ){z = x + y ;return z ;}B.fun( int x , y ){int z ;return z ;}C.fun( x , y ){int x , y ; double z ;z = x + y ;return z ; }D.double fun( int x , int y ){double z ;z = x + y ;return z ;}3.如果一个函数没有返回值,那么该函数的类型是_______。

A.int B.char C.float D.void 4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是_______。

A.int B.char C.float D.void 5.以下说法不正确的是_______。

A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.形参可以为任意类型D.形参应与其对应的实参类型一致6.一个函数形参的作用域是_______。

A.main函数B.形参所在函数体C.从定义处到文件尾D.整个程序7.以下关于形参和实参的说明中,错误的是_____。

A.实参和形参占用不同的内存单元,即使同名也相互不影响B.实参在进行函数调用时,它们都必须有确定的值,以便把这些值传给形参C.实参对形参的数据传送是双向的,可以把实参的值传给形参,也可以把形参的值反向传给实参D.形参变量只有在被调用时才分配内存单元8.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是_______。

《C语言程序设计A》课程形成性考核作业三参考答案

《C语言程序设计A》课程形成性考核作业三参考答案

元素赋值给x,则不正确的语句为( D )。 A.x=pa[3]; B.x=*(a+3); C.a=a[3]; D.x=*pa+3; 14.假定有定义“int b[10];int *pb;”,则不正确的赋值语句为( C )。 A.pb=b; B.pb=&b[0]; C.pb=b+2; D.pb=b[5]; 15.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态 内存,应使用语句( D )。 A.delete[p]; B.delete *p; C.delete &p; D.delete []p; 16.假定指针变量p定义为“int *p=calloc(30,sizeof(int));”,要释放p所指 向的动态内存,应使用语句( D )。 A.delete[p]; B.deldete(p); C.free[]p; D.free(p);
1、 选择题 1. 在下面的(C)函数声明语句存在语法错误。 A.AA(int a,int b); B.AA(int ,int) C.AA(int a;int b) D.AA(int a,int) 2.在下面的(C)不能作为函数的返回类型。 A.void B.int C.new D.long 3.下面正确的函数原型语句是(B)。 A.int Function(void a); B.void Function(int); C.int Function(a); D.void int(double a); 4.函数调用func(exp1,exp2),exp3*exp4-exp5)中所含实参的个数为(B) 个。 A.1 B.2 C.4 D.5 5.下面的标识符中,(C)是文件级作用域。 A.函数形参 B.语句标号 C.外部静态类标识符 D.自动类标 识符 6.下面的标识符中,(B)具有全局级作用域。 A.函数形参 B.全局变量 C.内部静态类标识符 D.自动变量 符 7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指 数据的地址大( C )字节。 A.1 B.2 C.4 D.8 8.假定a为一个字符数组名,则a[8]的地址比该数组的首地址大( B ) 个字节。 A.4 B.8 C.16 D.32 9.假定a为一个数组名,则下面的( B )表示有错误。 A.a[i] B.*a++ C.*a D.*(a+1) 10.用calloc函数创建具有10个整型元素的一维数组的正确语句是( C )。 A.int *p=calloc(10,2); B.int *p=callo(10; C.int *p=calloc(10,4); D.int *p=malloc(10); 11.假定变量m定义为“int m=7;”,则定义p的正确语句为( B )。 A.int p=&m; B.int *p=&m; C.int &p=*m; D.int *p=m; 12.假定k是一个double类型的变量,则定义指向k的变量p的正确语句 为( B )。 A.double p=&k; B.double *p=&k; C.double &p=*k; D.char *p=”Thank you!”; 13.假定一条定义语句为“int a[10],x,*pa=a;”,若要把数组a中下标为3的

C语言练习3(数组)=参考解答

C语言练习3(数组)=参考解答

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案形考任务3一、选择题(共30分,每小题2分)题目1在下面的函数声明语句中,存在着语法错误的是( )。

选择一项:c.AA(int a; int b)题目2在下面的保留字中,不能作为函数的返回值类型的是( )。

选择一项:c. enum题目3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。

选择一项:c. 4题目4假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。

选择一项:b.*a++题目5用calloc函数创建具有10个整型元素的一维数组的正确语句是( )。

选择一项:c.int*p=calloc(10,4);题目6假定变量m定义为“int m=7;”,则下面正确的语句为( )。

选择一项:b.int*p=&m;题目7假定k是一个double类型的变量,则定义变量p的正确语句为( )。

选择一项:d.char题目8选择一项:d.x=*pa+3;题目9假定有语句为“int b[10];int *pb;”,则下面不正确的赋值语句为( )。

选择一项:d.pb=b[5];题目10已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。

选择一项:a.free(p);题目11在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。

选择一项:a. 原型语句题目12假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为()。

选择一项:c. f1题目13假定一个函数的原型语句为“int ff(int*x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。

选择一项:b.ff(a[0])题目14假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为( ) 。

C语言程序设计”平时作业(三)

C语言程序设计”平时作业(三)

C语言程序设计”平时作业(三)“C语言程序设计”平时作业(三)1.求Fibonacci数列的前40个数。

(参考例题5.8)#includeint main(){int f1=1,f2=1,f3;int i;printf("%12d\n%12d\n",f1,f2);for(i=1;i<=38;i++){f3=f1+f2;printf("%12d\n",f3);f1=f2;f2=f3;}return 0;}2.求100——200之间的全部素数(参考例题5.10)#include#includeint main(){int n,k,i,m=0;for(n=101;n<=200;n=n+2){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>=k+1){printf("%d",n);m=m+1;}if(m%10==0)printf("\n");}printf("\n");return 0;}3.有一个函数:x (x<1)y= 2x-1 (1<=x<=10)3x-11 (x>=10)写程序,输入x的值,输出y相应的值。

(参考第4章习题第6题)#includeint main(){int x,y;printf("请输入X的值");scanf("%d",&x);if(x<1){y=x;printf("x=%3d, y=x=%d\n" ,x,y);}else if(x<10){y=2*x-1;printf("x=%d, y=2*x-1=%d\n",x,y);}else{y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}return 0;}4.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。

《程序设计(C语言)》第3阶段在线作业

《程序设计(C语言)》第3阶段在线作业

一、单项选择题答题要求 :每题只有一个正确的选项。

1(5.0 分)5.0下列描述中不正确的是( ) A) 字符型数组中可以存放字符串  B) 可以对字符型数组进行整体输入、输出   C) 可以对整型数组进行整体输入、输出   D) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 参考答案: C收起解析 解析:无2(5.0 分)5.0已有定义:int x=3,y=4,z=5;则表达式!(x y) z-1&&y z/2 的值是( ) A) 6  B) 0   C) 2   D) 1 参考答案: D收起解析解析:无3(5.0 分)5.0已定义 c 为字符型变量,则下列语句中正确的赋值语句是( ) A) c='66';  B) c="66" c=66; C) D) c="B"参考答案: C收起解析解析:无4(5.0 分)5.0下面有关 for 循环的正确描述是( ) A) for 循环只能用于循环次数已经确定的情况  B) for 循环是先执行循环体语句,后判断表达式   C) 在 for 循环中,不能用 break 语句跳出循环体   D) for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 参考答案: D收起解析解析:无5(5.0 分)5.0下列循环语句中,不能够正常结束的是( ) A) int i=0;for(;i<100;i );  B) int i=0;for(;;){if(i >100)break;}   C) int i=0,j=0;while(i<=j)j ;   D) int i=0,j=0;do{i =j;i ;j ;}while(i<j); <="" div="" style="box-sizi ng: border-box;"> 参考答案: D收起解析解析:无6(5.0 分)5.0下列说法正确的是( ) A) main 函数必须放在 C 程序的开头  B) main 函数必须放在 C 程序的最后   C) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从程序开头执 行的   D) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从 main 函数 开始的 参考答案: D收起解析解析:无7(5.0 分)5.0已知 char b[5],*p=b; ,则正确的赋值语句是( ) A) b=“abcd”; B) *b=“abcd”;  C) p=“abcd”;   D) *p=“abcd”; 参考答案: C收起解析解析:无8(5.0 分)5.0已定义以下函数 fun(int *p) { return *p; } 该函数的返回值是( ) A) 不确定的值  B) 形参 p 中存放的值   C) 形参 p 所指存储单元中的值   D) 形参 p 的地址值 参考答案: D收起解析解析:无9(5.0 分)0已定义 c 为字符型变量,则下列语句中正确的是( ) A) c='97'; B) c="97";c="a"; C)c=97; D)参考答案: D收起解析解析:无10(5.0 分)5.0以下不合法的赋值语句是( ) A) x=(1,y=2);++x; B) C) x=y=15; D) y=int(x);参考答案: B收起解析解析:无11(5.0 分)5.0下述语句的输出为( ) int m=-1; printf(“%d,%u,%o”,m,m,m); A) -1,-1,-11  B) -1,32767,-177777  C) -1,32768,177777   D) -1,65535,177777 参考答案: D收起解析解析:无12(5.0 分)5.0已知 char ch=‘A’,且表达式:ch=(ch>=‘A’&&ch<=‘Z’)?(ch 32):ch, 该表达式的值是( ) A) A  B) a   C) z   D) Z 参考答案: B收起解析 解析:无13(5.0 分)5.0下列数组定义及赋值不正确的是( ) A) int a[10]={0,1,2,3,4,5,6,7,8,9};  B) int a[ ]={0,1,2,3,4,5,6,7,8,9};   C) int a[2][5]= {0,1,2,3,4,5,6,7,8,9};   D) int a[2][ ]= {0,1,2,3,4,5,6,7,8,9}; 参考答案: D收起解析 解析:无14(5.0 分)5.0已知 char ch='A'; 且表达式 ch=(ch>='A' && ch<='Z') ?(ch 32) ::ch 的值是( )A a Z 出错 A)  B)  C)  D)参考答案: B收起解析解析:无15(5.0 分)5.0以下程序中,while 循环的循环次数是( ) A) 1  B) 10  C) 6   D) 死循环,不能确定次数 参考答案: D收起解析解析:无16(5.0 分)5.0已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组 a 的第一维的大小是 () A) 2  B) 3   C) 4   D) 无法确定; 参考答案: C收起解析解析:无17(5.0 分)5.0下面不是 C 语言基本数据类型的是( ) A) 指针类型整型 B) C) 无符号长整型  D) 单精度型参考答案: A收起解析解析:无18(5.0 分)5.0已知小写字母的 ASCII 码为 97,对于 int a=99, b='b'; printf(“%c,%d”, a , b);的结果是( )99, b A)c, 98 B) C) 99, 98c, b D)参考答案: B收起解析解析:无19(5.0 分)5.0以下不能正确定义二维数组的选项是( ) A) int a[2][2]={{1},{2}} B) int a[][2]={l,2,3,4}  C) int a[2][2]={{l},2,3}   D) int a[2][]={{1,2},{3,4}} 参考答案: D收起解析解析:无20(5.0 分)5.0已知 int a=4,b=5; ,这执行表达式 a=a>b 后,变量 a 的值为( ) A) 0  B) 1   C) 4   D) 5 参考答案: A收起解析 解析:无。

c语言练习题3

c语言练习题3

一、选择题1、假设int型变量占两个字节的储存单元,若有定义:int x[10]={0,2,4}; 则数组x在内存中所占字节数为( )A、3B、6C、10D、202、下列合法的数组定义是( )A、int a[]=”string”;B、int a[5]={0,1,2,3,4,5};C、char a=”string”;D、char a[]={0,1,2,3,4,5};3、若给出一下定义:char x[]=”abcdefg”; char y[]={…a‟ , ‟b‟ , ‟c‟ , ‟d‟ , ‟e‟ , ‟f‟ , ‟g‟}; 则正确的叙述为( )A、数组x和数组y等价B、数组x和数组y的长度相同C、数组x的长度大于数组y的长度D、数组x的长度小于数组y的长度4、程序:main(){int n[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<3;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}运行结果是 ( )A、2B、1C、0D、35、一下程序的输出结果是( ) main(){int i,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}A、20B、21C、22D、236、一下程序运行后,输出结果是( )A、10000B、10010C、00110D、10100main(){int y=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}7、一下程序的输出结果是 ( )A、ABCDB、 ABCDC、EFGD、EFGHFGH EFG JK IJKLKL IJ OMmain(){char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}8、当执行下面的程序时,如果输入ABC,则输出结果是 ( )A、ABC6789B、ABC67C、12345ABC6D、ABC456789#include"stdio.h"#include"string.h"main(){char ss[10]="12345";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}9、不能把字符串“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!”;10、若有定义和语句: char s[10];s=”abcd”;printf(“%s\n”,s); 则运行结果是 ( )A、输出abcdB、输出aC、输出ab cdD、编译不通过11、若有一下程序段:char str[]=”ab\n\012\\\””;printf(“%d”,strlen(str));该程序段的输出结果是 ( )A、3B、4C、6D、1212、下列程序的输出结果是 ( )A、12ba56B、6521C、6D、62main(){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);}13、下面程序的输出是 ( )main(){char s[]="12134211";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default: v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}A、v1=4,v2=2,v3=1,v4=1B、v1=4,v2=9,v3=3,v4=1C、v1=5,v2=8,v3=6,v4=1D、v1=8,v2=8,v3=8,v4=814、有以下程序#include<string.h>main(){char str[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序运行后的输出结果是 ( )A、0B、5C、7D、2015、以下程序运行后的输出是 ( ) main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}A、75310246B、01234567C、76310462D、1357024616、以下程序的输出结果是()main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n",t);}A、3B、4C、1D、9二、填空题1、若想通过以下输入语句使a中存放字符串“1234”,b中存放字符“5”,则输入数据的形式应该是________......char a[10],b;scanf("a=%s\nb=%c",a,&b);......2、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。

C语言程序设计习题集3

C语言程序设计习题集3

C语⾔程序设计习题集3指针⼀单项选择题(每题2分,共40分)1 以下叙述中错误的就是_B__。

A 在程序中凡就是以“#”开始的语句⾏都就是预处理命令⾏B 预处理命令⾏的最后不能以分号表⽰结束C #define MAX就是合法的宏定义命令⾏D C程序对预处理命令⾏的处理就是在程序执⾏的过程中进⾏的2 若程序中有宏定义⾏:#define N 100 ,则以下叙述中正确的就是__B_。

A 宏定义⾏中定义了标识符N的值为整数100B 在编译程序对C源程序进⾏预处理时⽤100替换标识符NC 对C源程序进⾏编译时⽤100替换标识符ND 在运⾏时⽤100替换标识符3 若有如下宏定义:#define N 2#define y(n) ((N+1)*n)则执⾏下列语句:z=4*(N+y(5));后的结果就是_B__。

A 语句有错误B z值为68C z值为60D z值为1804 以下程序运⾏后的输出结果就是_A__。

#define F(X,Y) (X)*(Y)main(){ int a=3,b=4;printf("%d\n",F(a++,b++));}A 12B 15C 16D 205 以下程序运⾏后的输出结果就是_C__。

#define f(x) (x*x)main(){ int i1,i2;i1=f(8)/f(4); i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}A 64,28B 4,4C 4,3D 64,646 若已定义a为int型变量,则__D_就是对指针变量p的正确说明与初始化。

A int p=&a;B int *p=a;C int *p=*a;D int *p=&a;7 已知下列说明语句:static int a[]={2,4,6,8}static int *p[]={a,a+1,a+2,a+3};int **q;q=p;则表达式**(q+2)的值就是_A__。

电子科大10秋学期《C语言》在线作业答案(一,二,三)

电子科大10秋学期《C语言》在线作业答案(一,二,三)
满分:2分
二、多选题(共5道试题,共10分。)
V
1.以下关于C源程序文件的说法中正确的是(BD)
A.是一种二进制文件
B.是一种文本(ASCII码)文件
C.可以用DOS的type命令显示其内容
D.文件扩展名一般为c
满分:2分
2.以下数据类型在内存中占用4个字节的是(BC)
A. int
B. unsigned long
A. if(x>y && 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++;}
满分:2分
7.以下对一维整型数组a的正确说明是(D)
A. int a(10)
B. int n=10,a[n];
C. char<int<1ongint=float=double
D. char=int=1ong int<=float<double
满分:2分
18.下面程序段的循环次数是(B)
int k=2;
while(k==0) printf(″%d″,k);
k--;
printf(″\n″);
A. 0次
B. 1次
A.是死循环
B.循环执行二次
C.循环执行一次
D.有语法错误
满分:2分
21.结构化程序设计所规定的三种基本结构是(C)
A.主程序、子程序、函数
B.树形、网形、环形
C.顺序、选择、循环

C语言第三、四章作业题答案

C语言第三、四章作业题答案

东华理工大学:C语言第三章作业题C程序设计第三章闭/开卷课程类别:考试/考查第三章顺序结构程序设计一、选择题1。

C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。

如果格式说明的个数小于输出项的个数,多余的输出项将 A ;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。

A)不予输出B)输出空格C)照样输出D)输出不定值或02.在scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配.如果类型不匹配,系统 B 。

A)不予接收B)并不给出出错信息,但不可能得出正确信息数据C)能接受正确输入D)给出出错信息,不予接收输入3。

下列说法正确的是 D 。

A)输入项可以是一个实型常量,如scanf(”%f",4。

8);B)只有格式控制,没有输入项也能进行正确输入,如scanf(”a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%5。

3f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f”,&f);4。

根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是B 。

main(){int a;float x;printf("input a,x:”);输入语句输出语句}输入形式input a,x:3 2.1输出形式a+x=5。

10A)scanf("%d,%f",&a,&x);printf("\na+x=%4。

2f",a+x);B)scanf(”%d %f",&a。

&x);printf("\na+x=%4。

2f”,a+x);C)scanf(”%d %f”,&a,&x);printf(”\na+x=%6。

1f",a+x);D)scanf("%d %3.1f”,&a,&x);printf(”\na+x=%4。

C语言程序设计-第三次作业的部分答案及分析

C语言程序设计-第三次作业的部分答案及分析

三、写出下列每个程序运行后的输出结果1. #include<stdio.h>void SB(char ch) {switch(ch) {case 'A': case 'a'://相当于if(ch==’A’||ch==’a’)printf("WW "); break;case 'B': case 'b':printf("GG "); break;case 'C': case 'c':printf("PP "); break;default:printf("BB "); break;}}void main() {char a1='b',a2='C',a3='f';SB(a1);SB(a2);SB(a3);SB('A');//4次调用SB,实际参数分别为b、C、f和Aprintf("\n");}GG PP BB WW2. #include<stdio.h>#include<stdlib.h>double SD(int a, int b, char op) {double x;switch(op) {case '+': x=a+b; break;case '-': x=a-b; break;case '*': x=a*b; break;case '/': if(b) x=(double)a/b;else exit(1);break;default: {printf("运算符错!\n");exit(1);}}return x;}void main() {int x=20,y=8;printf("%3.2lf ",SD(x,y,'-'));//以浮点形式输出x和y 的差printf("%3.2lf ",SD(x,y,'*'));//以浮点形式输出x和y 的积printf("%3.2lf\n",SD(x+y,y,'/')); //以浮点形式输出x+y和y 的商}//小数点后保留2位。

电子科技大19秋《C语言》在线作业3答案

电子科技大19秋《C语言》在线作业3答案

电子科技大19秋《C语言》在线作业3
试卷总分:100 得分:100
【试题】下面程序段的运行结果是()
【试题】charc[5]={'a','b','\0','c','\0'};
【试题】printf("%s",c);
[A.]’a’’b’
[B.]ab
[C.]abc
[D.]ab□(其中□表示空格)
[仔细阅读以上题目,并完成该试题]
参考选项:B
【试题】若有以下程序段:inta[]={4,0,2,3,1},i,j,t;
【试题】for(i=1;i5;i++)
【试题】{t=a[i];j=i-1;
【试题】while(j=0&&ta[j])
【试题】{a[j+1]=a[j];j--;}
【试题】a[j+1]=t;}
【试题】......
【试题】则该程序段的功能是()
[A.]对数组a进行插入排序(升序)
[B.]对数组a进行插入排序(降序)
[C.]对数组a进行选择排序(升序)
[D.]对数组a进行选择排序(降序)
[仔细阅读以上题目,并完成该试题]
参考选项:B
【试题】设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
[A.]int
[B.]float
[C.]double
[D.]不确定
[仔细阅读以上题目,并完成该试题]
参考选项:C。

C语言主题作业三

C语言主题作业三
int x, y[3];
} a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p=a+3;
int z;
3.
4.
5.
6.Βιβλιοθήκη 7. 8.z=*((int *)(p-1)-1); 下列代码段将会打印出_____。 char *c[3]={“FIRST”, “SECOND”, “THIRD”}; printf(“%s”, c+1); 下列程序段的输出结果是_____。 char *st[ ]={"abcd","efgh","ijkl","mnop"}; printf("%s", *(st+1)+1); 下列代码段的输出为_____。 char *st[ ]={"ONE","TWO","FOUR","K"}; printf("%s, %c\n", *(st+2), **st+1); 下列代码段的输出_____。 char *a[]={“678”,”45”},**p=a+1; printf(“%s,%c”,*p,**p-1); 对于数组a,*(a[1]+1)的值为_____。
10. 下列程序将会打印出_____。 #include <stdio.h> #define my_square_add(a, b) (a * a + b * b) #define my_square_sub(a, b) (a * a - b * b) int main() { int a = 1, b = 2; printf("%d#", my_square_add(a + b, b)); printf("%d#", my_square_sub(a + b, b)); return 0; } 11. 下列程序的输出结果是_____。 # include <stdio.h> int f(int x) { static int k=0; return ++k+x; } main( ) { int k; for(k=0;k<3;k++) printf("%d#", f(k) ); } 12. 下列命令行参数程序生成的执行程序为 test.exe,执行 test 123 abc<回车>,输出结果 是_____。 (选作,未讲) # include <stdio.h> main(int argc,char *argv[]) { while(--argc) printf("%s#",argv[argc]); }

C语言作业3

C语言作业3

撞球#include 〈stdio.h>#include <math.h>#include 〈string。

h〉int main(){double length,wide,x0,y0,x1,y1;int i;char towards[1500];while(1){memset(towards,0,sizeof(towards));if(scanf("%lf %lf",&wide,&length)==EOF)break;scanf(”%lf %lf”,&x0,&y0);scanf("%lf %lf",&x1,&y1);scanf("%s”,towards);for(i=0;i<strlen(towards);i++){if(towards[i]=='F’)y0=—y0;if(towards[i]==’B')y0=2*length—y0;if(towards[i]==’L')x0=—x0; if(towards [i ]==’R') x0=2*wide-x0; }printf ("%.4lf\n",sqrt((x0-x1)*(x0—x1)+(y0-y1)*(y0-y1))); }return(0); }20. 整数问题成绩: 0 / 折扣: 0.8请求输出满足以下条件的n 位正整数的个数:要求该n 位整数的从高位开始前1位可以被1整除,该n 位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。

即该整数前k 位都可被k 平方整除。

例如:n=1,则符合条件的1位正整数为1~9,输出答案9.n=2,符合条件的正整数为:12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96,则输出答案22。

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

撞球#include <stdio.h>#include <math.h>#include <string.h>int main(){double length,wide,x0,y0,x1,y1;int i;char towards[1500];while(1){memset(towards,0,sizeof(towards));if(scanf("%lf %lf",&wide,&length)==EOF) break;scanf("%lf %lf",&x0,&y0);scanf("%lf %lf",&x1,&y1);scanf("%s",towards);for(i=0;i<strlen(towards);i++){if(towards[i]=='F')y0=-y0;if(towards[i]=='B')y0=2*length-y0;if(towards[i]=='L')x0=-x0;if(towards[i]=='R')x0=2*wide-x0;}printf("%.4lf\n",sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)));}return(0);}20. 整数问题成绩: 0 / 折扣: 0.8请求输出满足以下条件的n 位正整数的个数:要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。

即该整数前k位都可被k平方整除。

例如:n=1,则符合条件的1位正整数为1~9,输出答案9。

n=2,符合条件的正整数为:12,16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92,96,则输出答案22。

当n=4时,2432就是一个符合题意的整数。

第一位2可以被1整除;前2为24可以被4整除;前3位243可以被9整除;整个4位2432可以被16整除。

输入:n(0<=n<9)输出:符合该条件的n位正整数的数量(本题目为软件学院2007年保研学生初试上机试题。

本题可以不用数组)测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示1.1↵以文本方式显示1.9↵无限制64M 0测试用例 2以文本方式显示1.2↵以文本方式显示1.22↵无限制64M 0测试用例 6以文本方式显示以文本方式显示无限制64M 0思路一:做9个数组,第一个数组为1-9,从n=2开始,将上一组的每个数乘10加0-9,验算得到的数是否是n^2的整数倍,是则存入当前数组。

完成后第n个数组的长度即是所求。

思路二:直接数完9组数据,做成映射表。

1,2,3,4,5,6,7,8,9共9个12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92共22个126,162,207,243,288,324,360,369,405,441,486,522,567,603,648,684,720,729,765,801,846,882,927,963共24个1264,2432,2880,3248,3600,3696,4416,4864,6032,6480,6848,7200,7296,8016,8464,9632,共16个24325,28800,36000,60325,64800,72000,96325,共7个243252,288000,360000,603252,648000,720000,963252,共7个6480005,共1个n=8,9时个数为0则建立数组a[9]={9,22,24,16,7,7,1,0,0},输入n则直接输出数组的第n个值即可注意,如果数组计数从0开始,则输入n要输出a[n-1]#include <stdio.h>void main(){int n;n<9;scanf("%d",&n);{if(n==1)printf("9\n");}{if(n==2)printf("22\n");}{if(n==3)printf("24\n");}{if(n==4)printf("16\n");}{if((n==5)||(n==6))printf("7\n");}{if(n==7)printf("1\n");}{if((n==8)||(n==0))printf("0\n"); }}H5 铺地板(选作)成绩: 5 / 折扣: 0.8背景:你是一名室内装潢工程队的配料员。

你的伙伴们喜欢采用“之”字型的方式铺大理石地砖,图案如下:1 2 6 7 153 5 8 14 164 9 13 17 2210 12 18 21 2311 19 20 24 25学了 C 语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。

输入:方阵N的大小。

输出方阵。

测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示1.5↵以文本方式显示1. 1 2 6 7 15↵2. 3 5 8 14 16↵3. 4 9 13 17 22↵4.10 12 18 21 23↵5.11 19 20 24 25↵1秒64M 0#define N 50#include<stdio.h>main(){int c,d,b,h,i,j,n,a[N][N];scanf("%d",&b);if(b==1)printf(" %d\n",b);else{for(i=0;i<b;i++)for(j=0;j<b;j++){if(i+j<b){d=((i+j)*(j+i+1))/2;if((i+j)%2==0) a[i][j]=d+j+1; else a[i][j]=d+1+i;}if(i+j>=b){c=0;h=i+j-b;for(n=b-1;h>0;n--,h--)c=c+n;d=(b+1)*b/2+c;if((i+j)%2==0)a[i][j]=d+b-i;else a[i][j]=d+b-j;}}for(i=0;i<b;i++){for(j=0;j<b-1;j++)if(a[i][j]<=9)printf(" %d ",a[i][j]);else printf("%d ",a[i][j]);if(a[i][j]<=9)printf(" %d\n",a[i][j]);else printf("%d\n",a[i][j]);}}}H8 邮票组合(选作)成绩: 5 / 折扣: 0.9背景:我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。

现在,邮局有4种不同面值的邮票。

在每个信封上最多能贴5张邮票,面值可相同,可不同。

输入:四种邮票的面值。

输出:用这四种面值组成的邮资最大的从1开始的一个连续的区间。

说明:如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。

名词解释:邮资:就是你寄东西需要花多少钱。

邮票面额:是由国家发行的具有固定价格的花纸片,被称为邮票。

如果你寄东西,邮局称了重量,告诉你要240分。

这样你就要贴邮票了。

如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。

显然不同邮票的组合都可以得到同样一种邮资。

测试输入期待的输出时间限制内存限制额外进程测试用例 2以文本方式显示1. 1 3 7 12↵以文本方式显示1.The max is 46.↵1秒64M 0#include<stdio.h>int neng(int a[],int max){int i,j,k,m,n;int sum;for(i=0;i<5;i++)for(j=0;j<5;j++)for(k=0;k<5;k++)for(m=0;m<5;m++)for(n=0;n<5;n++){sum=a[i]+a[j]+a[k]+a[m]+a[n];if(sum==max) return 1;}return 0;}void main(){int a[5],i;int max=0;a[4]=0;scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]); while(1){if(neng(a,max)){max++;}else break;}printf("The max is %d.\n",max-1);}H6 晕(选作)成绩: 5 / 折扣: 0.8看着这样的“回”形图案你晕吗?让我们不用数组,来做出它。

输入:n。

正方形的边长输出:边长为 n 的数字回形方阵。

测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示1.3↵以文本方式显示1. 1 2 3↵2.8 9 4↵3.7 6 5↵无限制64M 0测试用例 2以文本方式显示1.4↵以文本方式显示1. 1 2 3 4↵2.12 13 14 5↵3.11 16 15 6↵4.10 9 8 7↵无限制64M 0测试用例 5以文本方式显示1.5↵以文本方式显示1. 1 2 3 4 5↵2.16 17 18 19 6↵3.15 24 25 20 7↵4.14 23 22 21 8↵5.13 12 11 10 9↵无限制64M 0#include<stdio.h>#define N 20void main(){int n,x1,x2,x3,x4,y,flag=1,s,i=0,j=0,a[N][N];scanf("%d",&n);x1=n; x2=x3=n-1; x4=n-2;for(s=1;flag; ){for(y=0;y<x1&&flag;y++) {a[i][j]=s;j++;s++;}x1-=2;i++;j--;if(s==n*n+1) flag=0;for(y=0;y<x2&&flag;y++) {a[i][j]=s;i++;s++;}x2-=2;j--;i--;if(s==n*n+1) flag=0;for(y=0;y<x3&&flag;y++) {a[i][j]=s;j--;s++;}x3-=2;i--;j++;if(s==n*n+1) flag=0;for(y=0;y<x4&&flag;y++) {a[i][j]=s;i--;s++;}x4-=2;j++;i++;if(s==n*n+1) flag=0;}for(i=0;i<n;i++,printf("\n")) for(j=0;j<n;j++) printf("%3d",a[i][j]);}H7 子数整除(选作)成绩: 5 / 折扣: 0.8对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:•sub1=a1a2a3•sub2=a2a3a4•sub3=a3a4a5例如,五位数20207可以拆分成:•sub1=202•sub2=020(=20)•sub3=207现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1、sub2、sub3都可被K整除。

相关文档
最新文档