C语言程序设计大赛题目和答案

合集下载

C语言程序设计试题及参考答案

C语言程序设计试题及参考答案

C语言程序设计

一、选择题(共40分,每小题2分)

1、以下叙述不正确的是(D)

A、一个C源程序可由一个或多个函数组成

B、一个C源程序必须包含一个main函数

C、C程序的基本组成单位是函数

D、在C程序中,注释说明只能位于一条语句的后面

2、下列四个选项中,是不合法的用户标识符的选项是(B)

A、abc

B、12AC

C、sun

D、A

3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A)

A、-24

B、0

C、4

D、16

4、下列运算符中优先级最高的是(B)

A、<

B、+

C、&&

D、==

5、在C语言中,运算对象必须是整型数的运算符是(A)

A、%

B、/

C、%和/

D、+

6、以下关于运算符的优先顺序的描述正确的是(C)

A、关系运算符<算术运算符<赋值运算符<逻辑与运算符

B、逻辑与运算符<关系运算符<算术运算符<赋值运算符

C、赋值运算符<逻辑与运算符<关系运算符<算术运算符

D、算术运算符<关系运算符<赋值运算符<逻辑与运算符

7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C)

sum=pad=5;pAd=sum++,pAd++,++pAd;

printf(“%d\n”,pad);

A、7

B、6

C、5

D、4

8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z;

B、scanf(“%d%d%d”,&x,&y,&z);

C、scanf(“%d%d%d”,x,y,z);

C语言程序设计竞赛题及其答案

C语言程序设计竞赛题及其答案

C语言程序设计竞赛题及其答案

数学与统计学院

第三届计算机程序设计竞赛题

竞赛需知:

1、答案必须写在答题纸上。

2、程序采用C/JAVA/VB/VFP语言实现均可。

3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必

须说明输入变量和输出变量。

4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可

以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。

一、玫瑰花数(20分)

如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如:

+

+

1634+

=,

4^4

4^3

4^6

4^1

编程输出所有的玫瑰花数。

#include

void main()

{

int i,j,k,l,m;

for(i=999;i<=9999;i++)

{

j=i/1000;

k=i%10;

l=i/100-10*j;

m=i/10-100*j-10*l;

if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i);

}

}

二、菱形图案(20分)

对给定的奇数n,编程打印菱形图案。

输入样例:

7

输出样例:

*

***

*****

*******

*****

***

*

#include

#include

void main()

{

int i,j,k;

int n;

scanf("%d",&n);

for(i=0;i<n;i++)< p="">

{for(j=0;j<="" p="">

printf("");

for(k=0;k<n-2*j;k++)< p="">

C语言程序设计

C语言程序设计

[试题分类]: C语言程序设计

[题型]:单选

1.对for(表达式1;;表达式3)可理解为

A. for(表达式1;0;表达式3)

B. for(表达式1;1;表达式3)

C. for(表达式1; 表达式1;表达式3)

D. for(表达式1; 表达式3;表达式3)

[答案]:B

2. 下面四个选项中,均是正确的数值常量或字符常量的选项是

A. 0.0 0f 8.9e ‘&’

B. “a” 3.9E-2.5 1e1 ‘\”’

C. ‘3’ 011 0xFF00 0a

D. +011 0xabcd 2e2 50.

[答案]:D

3. 在C语言中,一维数组的定义方式为:类型说明符数组名

A. [常量表达式]

B. [整型表达式]

C. [整型常量] 或[整型表达式]

D. [整型常量]

[答案]:A

4. 在C语言中,数字029是一个()。

A. 八进制数

B. 十六进制数

C. 十进制数

D. 非法数

[答案]:D

5. 以下不能对二维数组a进行正确初始化的语句是

A. int a[2][3]={0};

B. int a[][3]={{1,2},{0}};

C. int a[2][3]={{1,2},{3,4},{5,6}};

D. int a[][3]={1,2,3,4,5,6};

[答案]:C

6. 下面四个选项中,均是不合法的浮点数的选项是

A. 160.0.12 e3

B. 123 2e4.2 .e5

C. -.18 123e4 0.0

D. -e3 .234 1e3

[答案]:B

7. 下面四个选项中,均是合法浮点数的选项是

A. +1e+1 5e-9.4 03e2

《C语言程序设计》考试及答案

《C语言程序设计》考试及答案
int main()
{
int y=10;
for(;y>0;y--)
if(y%3==0)
printf(“%d”,--y);
return 0;
}
[单选题]*
A、741
B、852(正确答案)
C、963
D、875421
17、在对n个元素进行冒泡排序的过程中,第一趟排序需要进行()对相邻元素的比较。[单选题]*
A、结构体中一个成员所需的内存容量
B、结构体中第一个成员所需的内存容量
C、结构体中占内存容量最大者所需的容量
D、结构体中各成员所需的内存容量之和(正确答案)
7、有函数调用语句:[单选题]*
func((exp1,exp2),(exp3,exp4,exp5));
该语句的实参个数是()。
A、1
B、2(正确答案)
A、1(正确答案)
B、2
C、3
D、4
3、变量的指针,其含义是指该变量的()。[单选题]*
A、值
B、地址(正确答案)
C、名
D、一个标志
4、若执行fopen函数时发生错误,则函数的返回值是()。[单选题]*
A、地址值
B、NULL(正确答案)
C、1
D、EOF
5、下列程序运行的结果是()。
#include<stdio.h>

C语言程序设计习题集及答案

C语言程序设计习题集及答案

基础知识

一 单项选择题(每题2分,共44分)

1 以下叙述正确的是___。

A C 程序基本组成单位是语句

B

C 程序每一行只能写一个语句

C 简单C 语句必须以分号作为结束符

D 注释语句可以嵌套

2 一个C 语言程序是从___开始执行的。

A 程序中第一个函数

B 名为main 的函数

C 包含文件(头文件)的第一个函数

D 程序中的第一个语句

3 请选出合法的C 语言赋值语句___。

A a=b=58

B i++;

C a=58,b=58

D k=int(a+b);

4 下面标识符中,合法的用户标识符是 ___。

A 1abc

B include

C a-b-c123

D char

5 以下所列的C 语言整形常量中,正确的是___。

A 0x10

B 0976

C 076L

D 01ff

6 C 语言中下列运算符的操作数必须为整型的是___。

A %

B ++

C /

D =

7 设a 和b 均为int 型变量,则执行以下语句后的输出为___。

int a=20; int b=3; printf("%d\n ",a+=(b%=2));

A 20

B 21

C 0

D 23

8 已知int i;,则执行语句 i=2.6;后,i 的值为___。

A 2

B 3

C 2.6

D 不确定

9 以下合法的字符常量为___。

A 'ab '

B '\482'

C '\'

D '\xaf '

10 若y 为int 型变量,则执行以下语句后,y 的值是___。

y=8; y+=y-=y*y;

A 64

B –56

C –112

D –48

11 以下合法的浮点型常量是___。

A e-3

B 1.5e+2.4

c语言程序设计题目及答案

c语言程序设计题目及答案
tt指向一个M行N列的二维数
组,求出二维数组每列 中最大元素,并依次放入pp所 指一维数组中。二维 数组中的数已在主函数中赋 予。
#include<conio.h> #include<stdio.h> #define M3#define N4void wwjt();
void fun(int tt[M][N],int pp[N]){int i,j;
第10题 题号:16
功能:编写函数fun求1!+2!+ 3!+
+n!的和,在main函
数中由键盘输入n值,并输出 运算结果。请编写fun
函数。
例如:若n值为5,则结果为153。
#include<stdio.h>
void wwjt();
long int fun(int n)
{
int i;
float f=1,s=0;
if(i>=5) return(int)(h*100+1)/100.0;
else return(int)(h*100)/100.0;第12题题号:410功能:编写函数fun将一个数组中的值按逆序存放,并在
main()函数中输出。 例如:原来存顺序为8,6,5,4,1。要求 改为:1,4,5,6,8。
for(j=0;j<N;j++){pp[j]=tt[0][j]; for(i=1;i<M;i++) if(tt[i][j]>pp[j])

C语言程序设计习题及答案

C语言程序设计习题及答案

第一部分 C语言基础

一、单项选择

1.以下不是C语言的特点的是()。

(A) C语言简洁、紧凑(B)能够编制出功能复杂的程序

(C) C语言可以直接对硬件进行操作(D)C语言移植性好

2.下列浮点数的表示中正确的有()。

(A)223 (B).719E22 (C ) e23 (D) 12e2.0

3.字符型常量在内存中存放的是()。

(A)ASCII代码(B)BCD代码(C)内部码(D)十进制码

4.“BB\n\\\123\r”在内存中占的字节数是(),此字符串的长度为()。

(A)6 (B)7 (C)8 (D)9 (E)10 (F)11

5.对于语句scanf (“%f□%f,z=%f”,&x,&y,&z ); ,其合法的输入形式为()。

(A)□14.7□2.0□15.3 (B)14.7,2.0,15

(C)14.7□□2.0,15.3 (D)14.7□□□2.0,z=15

6.下列运算符中,结合方向为自左向右的是()。

(A)=(B),(C)+=(D)――

7.若有int x ; 则sizeof(x)和sizeof(int )两种描述( ) 。

(A)都正确(B)值不一样(C)前者正确(D)后者正确

8.整型变量x=1,y=3,经下列计算后,x的值不等于6的是( ) 。

(A)x=(x=1+2,x*2) (B)x=y>2?6:5 (C)x=9 - (- -y) - (- -y) (D)x=y*4.2/2

9.单精度变量x=3.0, y=4.0,下列表达式中y的值为9.0的是( ) 。

(A)y/=x*27/4 (B)y+=x+2.0 (C)y- =x+8.0 (D)y*=x-3.0

C语言程序设计试题及答案

C语言程序设计试题及答案

C语言程序设计试题及答案

《C语言程序设计》(卷)考核班级

学生数印数考核方式闭卷考核时间 120 分钟

(本试卷包括第一卷和第二卷,答卷时间总共120分钟)

第一卷

第一部分:基础知识(20项,共40分)

1.一个C语言程序是由()组成的。

A.主程序 B.子程序 C.函数 D.过程

2.转换说明符%x的输出形式是()。

A.十进制 B.八进制 C.十六进制 D.二进制

3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “ ------------“) ;的正确说法是()。

A.循环体只执行一次 B.死循环

C.循环体一次也不执行 D.输出-----------

4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。

x=1; y=2; z=3; z=(x>y)z :y ; z = (z<y)z:x;< p="">

A.1 B.4 C.2 D.3

5.下面标识符中,合法的用户标识符为()。

A.P#Ad B.12a C.char D._int

6.‘A’ + 3 的结果是()。

A.’A’ B.’D’的ASCⅡ码 C.65 D.3

7.语句char str[20];说明str是一个字符串,最多能表示()。

A.20个字符 B.19个字符 C.18个字符 D.21个字符

8.将int 型变量n转换成float型变量的方法是()。

A.float n B.(float)n C.float(n) D.21个字符

9.以下不正确的描述是()。

c语言程序设计题目及答案解析

c语言程序设计题目及答案解析

一、程序设计共113题

第1题题号:319

#include "stdio.h"

void wwjt();

int fun(int m)

{

int i,k=1;

if(m<=1) k=0;

for(i=2;i<m;i++)

if(m%i==0) k=0;

return k;

}

第2题题号:351

-----------

功能:请编一个函数void fun(int tt[M][N],int pp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最大元素,并依次放入pp所指一维数组中。二维

数组中的数已在主函数中赋予。

#include<conio.h>

#include<stdio.h>

#define M 3

#define N 4

void wwjt();

void fun(int tt[M][N],int pp[N]) {

int i,j;

for(j=0;j<N;j++)

{

pp[j]=tt[0][j];

for(i=1;i<M;i++)

if(tt[i][j]>pp[j])

pp[j]=tt[i][j];

}

第3题题号:375

功能:从键盘上输入任意实数,求出其所对应的函数值。 z=e的x次幂(x>10)

z=log(x+3) (x>-3)

z=sin(x)/((cos(x)+4)

#include <math.h>

#include<stdio.h>

void wwjt();

double y(float x)

{

double z;

if(x>10) z=exp(x);

c语言程序设计试题及答案

c语言程序设计试题及答案

c语言程序设计试题及答案

第一章基础知识

一、填空

1.每个C程序都必须有且仅有一个________函数。

2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、

________、链接、加载和执行。

3.软件是程序,以及______、使用和维护所需要的所有文档。

4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处

理的_________”。

5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语

言和________两大类

6.C语言是由________组成的。

7.C语言的函数可分为主函数main、标准库函数和_________。

8.一个函数是由两部分组成的,即:________和函数体。

9.编译是将C语言所编写的源程序________成机器代码,也称为建立

目标代码程序的过程。

10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想

和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用

户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、信息系统

(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统

称为_________。

11.机器语言是以__________形式表示的机器基本指令的集合,是计

算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。12.与机

器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作

码和操作对象,也可以用标号和符号来代替地址、常量和变量。

C语言程序设计试题试题及答案

C语言程序设计试题试题及答案

C语言程序设计试题试题及答案

C 语言程序设计试卷,C++ 语言程序设计试题及答案

一、单项选择题(每题1分,共20 分)

1. C 语言规定:在一个源程序中,main 函数的位置( C ) 。

A. 必须在最开始

B. 必须在系统调用的库函数的后面

C. 可以任意

D. 必须在最后

2. 下面四个选项中,均是合法浮点数的选项是( B ) 。

A. +1e+1 5e-9.4 03e2

B. -.60 12e-4 -8e5

C. 123e 1.2e-.4 +2e-1

D. -e3 .8e-4 5.e-0

3. 若a=-14,b=3, 则条件表达式a<="" a:b+1="" p="" 的值为(a="">

A. -14

B. -13

C. 3

D. 4

4. 已知:int n,i=1,j=2; 执行语句n=i

A. 1,2

B. 1,3

C. 2,2

D. 2,3

5. 为了判断两个字符串s1 和s2 是否相等, 应当使用( D )

A. if (s1==s2)

B. if(s1=s2)

C. if (strcmp(s1,s2))

D. if (strcmp(s1,s2)==0)

6. 以下正确的描述是( B ) 。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。

B. 函数的定义不可以嵌套,但函数的调用可以嵌套。

C. 函数的定义和函数的调用均不可以嵌套。

D. 函数的定义和函数的调用均可以嵌套。

7. 在C语言中,下面对函数不正确的描述是(D)。

A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。

B. 允许函数递归调用。

C. 函数形参的作用范围只是局限于所定义的函数内。

C语言程序设计试题及答案

C语言程序设计试题及答案

C语言程序设计试题及答案

《C语言程序设计》(卷)考核班级

学生数印数考核方式闭卷考核时间120 分钟

(本试卷包括第一卷和第二卷,答卷时间总共120分钟)

第一卷

第一部分:基础知识(20项,共40分)

1.一个C语言程序是由()组成的。

A.主程序B.子程序C.函数D.过程

2.转换说明符%x的输出形式是()。

A.十进制B.八进制C.十六进制D.二进制

3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。

A.循环体只执行一次B.死循环

C.循环体一次也不执行D.输出-----------

4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。

x=1; y=2; z=3; z=(x>y)z :y ; z = (z<y)z:x;< p="">

A.1 B.4 C.2 D.3

5.下面标识符中,合法的用户标识符为()。

A.P#Ad B.12a C.char D._int

6.‘A’+ 3 的结果是()。

A.’A’B.’D’的ASCⅡ码C.65 D.3

7.语句char str[20];说明str是一个字符串,最多能表示()。

A.20个字符B.19个字符C.18个字符D.21个字符

8.将int 型变量n转换成float型变量的方法是()。

A.float n B.(float)n C.float(n) D.21个字符

9.以下不正确的描述是()。

A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句

c语言程序设计题目及答案

c语言程序设计题目及答案

z=e 的 x 次幂(x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include <math.h> #include<stdio.h> void wwjt();
double y(float x) { double z;
if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第 4 题 题号:334 功能:求给定正整数 n 以内的素数之 积。(n<28) #include <stdio.h> #include"conio.h" void wwjt();
则返回值为 1,否则为 0。调 用该函数求出 15~300 之
间能同时被 3 和 5 整除的数的 个数。 #include <stdio.h> void wwjt();
int sum(int n) { if(n%3==0&&n%5==0) return(1); return(0);} 第 10 题 题号:16 功能:编写函数 fun 求 1!+2!+3!+ …… +n!的和,在 main 函
功能:请编一个函数 void fun(int tt[M][N],int pp[N]),

C语言程序设计的试题及答案

C语言程序设计的试题及答案

C语言程序设计的试题及答案

大家在考程序员时,C语言程序设计大家有了解吗?下面瑞文网小编为大家分享了C 语言程序设计的试题及答案,供大家参考。

第一章基础知识

一、填空

1. 每个 C 程序都必须有且仅有一个________ 函数。

2. C 语言程序开发到执行通常要经过 6 个阶段即编辑、预处理、________、链接、加载和执行。

3. 软件是程序,以及______、使用和维护所需要的所有文档。

4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的

_________”。

5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。

6. C 语言是由________组成的。

7. C 语言的函数可分为主函数main、标准库函数和_________。

8. 一个函数是由两部分组成的,即:________和函数体。

9. 编译是将C 语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA) 、管理信息系统(MIS) 、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。

11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案

/*-------------------

第一题

某人到商店购物,身上有钱m元,商店里有商品n件,如果只能买1件或2件商品,且想一次性把钱花完,编程求是否可行?

输入数据:第一行输入两个整数n和m

(1≤n≤30000,1≤m≤10000),下面n行中每一行都是一个整数a,表示商店中商品的价格,1≤a≤10000。

输出数据:如果可以恰好用m元钱买到1件或者是2件东西,则第一行输出YES,随后的一行或两行输出所买商品的价格;否则输出NO。

输入样例:

5 20

1

3

7

13

18

输出样例:

YES

7

13

-----------------------*/

#include <stdio.h>

#include <malloc.h>

void main(){

int m, n;

int *a;

int i,j;

scanf("%d%d",&n,&m); //输入商品数及钱的多少

a=(int*)malloc(n*sizeof(int));

for(i=0;i<n;i++) scanf("%d",a+i); //输入每件商品的价格

for(i=0;i<n;i++)

if(a[i]==m) {printf("%s\n%d\n","YES",a[i]); break;}

else

for(j=i+1;j<n;j++)

if(a[i]+a[j]==m)

{printf("%s\n%d\n%d\n","YES",a[i],a[j]); return;}

if (i==n) printf("\nNO\n");

C语言程序设计竞赛试题参考答案

C语言程序设计竞赛试题参考答案

C语言程序设计竞赛试题参考答案

第七届“蓝桥杯”全国软件与信息技术专业人才大赛清远职业技术学院选拔赛《C语言程序设计》参考答案1.标题:年龄巧合(填空题,20分)

答案: 1988

2.标题:海盗分金币(填空题,20分)

答案: 3129

3.标题:啤酒和饮料(填空题,20分)

答案: 11

4.标题:兔子繁殖(程序填空,20分)

(1) i=1;i<=38;i++

(2) f3=f1+f2

(3) f1=f2

(1) f2=f3

5.题目:杨辉三角(编程题 20分)

代码如下:

#include

#include

int main()

{

int i,j,k,n;

static int a[50][50];

printf("Input lines\",&n);

scanf("%d",&n);

a[1][1]=a[2][1]=a[2][2]=1;

for(i=3;i<=n;i++)

for(j=1;j<=i;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=1;i<=n;i++)

{

for (k=1;k<=n-i;k++)

printf(" ");

for(j=1;j<=i;j++)

printf("%2d ",a[i][j]);

printf("\");

}

getch();

return 1;

}

1-3题参考代码

1、代码如下:

#include

int main(void)

{

int a, b, c, d;

int age;

int year;

for(a=0; a<=2; a++)

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

}
ห้องสมุดไป่ตู้
/*----------------------------------------第五题 平面上有n个点(n≤8000),每两个点之间都有一条红色或者是黑色的 线段,任意三点均不共线。 现在,已知哪些点之间连的线段是红色的,剩下的线段都是黑色的,要 求计算这些点组成的三角 形中有多少是同色的(顶点编号从1到n)? 输入数据:第一行是n, m(3≤n≤8000),n表示点的个数,m表示红色线 段的条数。下面m行,每 一行都是两个整数a和b,表示点a和点b之间的线段是红色的(a<b)。 输出数据:只有一行,表示同色三角形的个数。 提示:本题输出数据可能会超出长整数(long int)的范围。 输入样例: 65 12 13 23 25 36 输出样例: 7 -------------------------------------------*/ #include <stdio.h> #define N 8001 int colorline[N][N]={0}; //将所有的线设为黑色 void main(){ int n,m; //点的数目和红色的条数 int x,y; //点的坐标
编写程序实现将一段文章格式化打印出来。打印时每行的长度为20个字 符。 如果一行的最后一个单词超过了本行的20个字符的范围,则应把它移到 下一行。 另外在每个单词之间增加一些空格,以便使每行的末尾准确地处在第20 个位置处。 输入样例: The relationship between XML functional dependencies and XML keys are also discussed. 输出样例: The relationship between XML functional dependencies and XML keys are also discussed. ------------------------------*/ #include <stdio.h> #include <string.h> void main(){ char word[128][21]={'\0'},ch; int words=0,i; //words为文本中单词数量 int startPos,spaces; //startPos表示当前行从哪个单词开始打印 //spaces表示单词中隔几个空格符 ch=getchar(); while(ch!='\n'){ //用循环分离出每个单词,用数组a存储 while(ch==' ') ch=getchar(); i=0; while((ch!=' ')&&(ch!='\n')) { word[words][i++]=ch; ch=getchar(); } word[words][i]='\0'; words++;
} startPos=0; for(i=0;i<words;i++){ int length=0,curwords=0; 个数
//length 用于计算当前要打印的长度, //curwords 用于计算当前要打印的单词
while(length<20 && i<words){ length+=strlen(word[i]); if(length>20 || length+curwords>20) { length-=strlen(word[i]);break; } i++;curwords++; } i=i-1; //i多走了一步,要减回来 if(curwords>1) //一行中超过一个单词,要计算单词间打印的空格数, 注意这里可能不能均分 spaces=(20-length)/(curwords-1); int j=startPos; //当前行要打印的第一个单词在数据中的位置 do{ printf("%s",word[j]); //打印单词,如果只有一个单词,程序处 理为左对齐 for(int k=0;k<spaces;k++) putchar(' '); //打印单词间的空格 }while(++j<startPos+curwords-1); if(curwords>1) { //一行中有多个单词时,最后一个单词要右对齐, 因此另行处理 for(int k=0;k<(20-length)%(curwords-1);k++) putchar(' '); //先 计算打印最后一个词前的空格 printf("%s",word[startPos+curwords-1]); } putchar('\n'); //换行 startPos+=curwords; //求出下一行第一个单词是数组中的第几 个单词 }
C语言程序设计大赛题目和答案 /*------------------第一题 某人到商店购物,身上有钱m元,商店里有商品n件,如果只能买1件或 2件商品,且想一次性把钱花完,编程求是否可行? 输入数据:第一行输入两个整数n和m(1≤n≤30000,1≤m≤10000),下面 n行中每一行都是一个整数a,表示商店中商品的价格,1≤a≤10000。 输出数据:如果可以恰好用m元钱买到1件或者是2件东西,则第一行输 出YES,随后的一行或两行输出所买商品的价格;否则输出NO。 输入样例: 5 20 1 3 7 13 18 输出样例: YES 7 13 -----------------------*/ #include <stdio.h> #include <malloc.h> void main(){ int m, n; int *a; int i,j; scanf("%d%d",&n,&m); //输入商品数及钱的多少 a=(int*)malloc(n*sizeof(int)); for(i=0;i<n;i++) scanf("%d",a+i); //输入每件商品的价格 for(i=0;i<n;i++) if(a[i]==m) {printf("%s\n%d\n","YES",a[i]); break;} else for(j=i+1;j<n;j++)
if(a[i]+a[j]==m) {printf("%s\n%d\n%d\n","YES",a[i],a[j]); return;} if (i==n) printf("\nNO\n"); }
/*---------------------第二题 写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子,D为 分母,输出它的小数形式。 如果它的小数形式存在循环,则要将其用括号括起来。例如: 1/3= 0.(3) 41/333= 0.(123) 22/5=4.4 1/7=0.(142857) 3/8=0.375 45/46=0.9(7826086956521739130434) 本题中,0≤N≤65535,0≤D≤65535,设运算结果小数点后最多保留100 位。 输入样例: 1, 7 输出样例: 1/7=0.(142857) -----------------------*/ #include <stdio.h> void main(){ long int digit[101]; //存放结果的数组,0号元素放整数部分,其 余放小数部分 long int remainder[101]; //存放余数 int state=0; //是否是循环小数,默认不是 long int repetendstart=0; //循环节的开始位置和结束位置
int tri=0; //计数器,同色三角形的个数 printf("input n (3<=n<=N) and m:"); scanf("%d%d",&n,&m); printf("\n"); for(int i=1;i<=m;i++){ //输入红线连接的两个点坐标 scanf("%d%d",&x,&y); colorline[x][y]=colorline[y][x]=1; // 1 表示红色线 } for(i=1;i<=n;i++) for(int j=i+1;j<=n;j++) for(int k=j+1;k<=n;k++) if(colorline[i][j]==colorline[i][k]&&colorline[i] [j]==colorline[j][k]) tri++; printf("Number of same color triangle:%d\n",tri); }
long int n,d; //输入的分子和分母 int i; printf("input N/D:"); scanf("%d/%d",&n,&d); //输入分子和分母 digit[0]=n/d; remainder[0]=n%d; //求出第一个余数 i=0; while(remainder[i] && !state && i<100){ //求小数部分 i++; //i记录了求了多少位小数 digit[i]=remainder[i-1]*10/d; //求出一位小数 remainder[i]=remainder[i-1]*10%d; //求余数即下一次的被除 数 for(int j=0;j<i;j++){ //判断是否出现循环节 if(remainder[j]==remainder[i]){//如果出现循环节则记下节开 始的位置 repetendstart=j+1; state=1; //置是循环小数状态 break; } } } //以下是打印部分 printf("%d",digit[0]); //打印整数部分 if(remainder[0]!=0) printf("."); //如有小数则打印小数点 for(int j=1;j<=i;j++){ //打印小数部分 if(j==repetendstart) printf("("); printf("%d",digit[j]); } if(state) printf(")"); printf("\n"); } /*-------------------------第三题
相关文档
最新文档