信息学竞赛(C语言)程序填空

合集下载

全真c语言程序填空题考试题库!!!

全真c语言程序填空题考试题库!!!

全真c语言程序填空题考试题库!!!c语言程序填空!!!这就是考试题库!!!共计131道试题一、程序填空(共131题)Turbo C(共131试题)3)./*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:已定义一个含有30个元素的数组s,函数fun1的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序每五个元素求一个平均值, 并将该值存放在数组w中。

-------------------------------------------------------*/float s[30],w[6];fun1(float s[]){int k,i;for(k=2,i=0;i<30;i++){/***********SPACE***********/ ________________ ;k+=2;}}fun2(float s[],float w[]){float sum=0.0;int k,i;for(k=0,i=0;i<30;i++){sum+=s[i];/***********SPACE***********/ ________________;{w[k]=sum/5;/***********SPACE***********/ ________________ ; k++;}}}main(){int i;fun1(s);/***********SPACE***********/________________;for(i=0;i<30;i++){if(i%5==0) printf("\n");printf("%8.2f",s[i]);}printf("\n");for(i=0;i<6;i++)printf("%8.2f",w[i]);}答案:【1】s[i]=k 或s[i]=(i+1)*2【2】if( ( i + 1 )%5 == 0 )或if( ( i + 1 )/5*5 ==i+1)【3】sum=0 或sum=0.0【4】fun2(s,w)4)./*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:下面的程序是求1!+3!+5!+……+n!的和。

信息学奥赛初赛程序填空

信息学奥赛初赛程序填空

1.下列程序计算1000以内能被3整除的自然数之和,请完成程序。

#include <iostream.h>void main(){int x=1, sum;[1]while(1){if( [2] )break;if( [3] )sum+=x;x++;}cout<<sum<<endl;}2.下面的函数fun未使用中间变量实现对两个数的交换,请完成下列函数的定义。

void fun(int &x, int &y){x+=y;y= [1] ;[2] ;}3.下面的函数bubble()是对整数数组a按升序排序的冒泡算法,其中,参数a存储将被排序的数据,size是数组a中存储的元素数目,请完成该函数。

void bubble(int a[], int size){[1] ;for(int p=1; [2] ; p++)for(int i=0; [3] ; i++)if(a[i]>a[i+1]){temp=a[i];[4] ;[5] ;}}3. 下面的函数Sort()用于对整数数组array按升序排序的选择排序算法,其中参数n表示array数组中存储的数组元素数。

例如,假设数组array中有10个元素,选择排序就是:先将10个数中的最小数与a[0]对换;再将a[1]到a[9]中的最小数与a[1]对换,….,直到排序完成。

请完成该函数。

void Sort( int array[], int n){int k;[1] ;for(int i=0; i<n-1; i++){[2] ;for(int j= [3] ; j<n; j++)if(array[j]<array[k])k=j;t=array[k];[4] ;[5] ;}}4. 统计字符串中英文字母个数的程序。

#include <iostream>using namespace std;int count (char str[]);void main(){char s1[80];cout<<"Enter a line:";[1] ;cout<<"count="<<count(s1)<<endl;}int count (char str[]){int num=0;for (int i=0;str[i];i++)if (str[i]>='a' && str[i]<='z' || str[i]>='A' && str[i]<='Z') [2] ;return [3] ;}5. 下面的函数Fun将一个整数字符串转换为一个整数。

c语言程序填空题

c语言程序填空题

c语言程序填空题题目描述:编写一个C语言程序,实现对一个整型数组的排序功能。

请编写一个函数,接受一个整型数组和数组的长度作为参数,将数组按照从小到大的顺序进行排序,并将排序后的数组输出。

要求:1. 使用冒泡排序算法实现数组排序功能。

2. 函数的原型为:void bubbleSort(int arr[], int length)。

3. 参数arr表示待排序的整型数组,length表示数组的长度。

4. 输出排序后的数组。

示例:输入:[5, 3, 8, 2, 1]输出:[1, 2, 3, 5, 8]解题思路:冒泡排序是一种简单直观的排序算法。

它重复地走访过要排序的元素,挨次比较相邻的两个元素,如果它们的顺序错误就交换位置,直到没有需要交换的元素为止。

具体步骤如下:1. 定义一个外层循环,循环次数为数组长度减1,表示需要进行n-1次比较。

2. 在外层循环中,定义一个内层循环,循环次数为数组长度减去当前外层循环的索引,表示每次比较的元素个数递减。

3. 在内层循环中,比较相邻的两个元素,如果顺序错误就交换位置。

4. 重复执行步骤3,直到内层循环结束。

5. 重复执行步骤2和步骤3,直到外层循环结束。

编写代码:```c#include <stdio.h>void bubbleSort(int arr[], int length) {int i, j;for (i = 0; i < length - 1; i++) {for (j = 0; j < length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {5, 3, 8, 2, 1};int length = sizeof(arr) / sizeof(arr[0]);printf("排序前的数组:");for (int i = 0; i < length; i++) {printf("%d ", arr[i]);}printf("\n");bubbleSort(arr, length);printf("排序后的数组:");for (int i = 0; i < length; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```代码解析:1. 在主函数中,定义了一个整型数组arr和数组长度length。

C语言题目程序填空及答案

C语言题目程序填空及答案

C语言题目程序填空及答案程序填空/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:当输入“2,5”的时候输出为“2 5 5”-------------------------------------------------------*/#include#define max 100main(){int f[max],i,j,k,m;scanf("%d,%d",&k,&m);/***********SPACE***********/for(i=0;i<=【m】;i++)f[i]=0;/***********SPACE***********/f[【k-1】]=1;for(i=k;i<=m;i++)/***********SPACE***********/for(j=i-k;j<=i-1;j++)f[i]【+=】f[j];printf("%d%10d%10d\n",k,m,f[m]);}/*------------------------------------------------------- 【程序填空】--------------------------------------------------------- 题目:以下程序是实现输出 x,y,z 三个数中的最大者。

-------------------------------------------------------*/#includemain(){int x = 4, y = 6,z = 7;/***********SPACE***********/int u ,【v】;if(x>y)/***********SPACE***********/【u=x】;else u = y;if(u>z)v = u;elsev=z;printf("the max is %d",v );}/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。

c语言程序填空题库

c语言程序填空题库

━━━━━━━━━━━━━━━━━━一、程序填空共130题━━━━━━━━━━━━━━━━━━第1题(9.0分)题号:441/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

-------------------------------------------------------*/#include <conio.h>#include <stdio.h>void fun (long s, long *t){long sl=10;s /= 10;/***********SPACE***********/*t = s 【?】10;while(s>0){/***********SPACE***********/s = 【?】;/***********SPACE***********/*t = s%10*sl【?】;/***********SPACE***********/sl = sl 【?】10;}}main(){ long s, t;clrscr();printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t);printf("The result is: %ld\n", t); }答案:1). %2). s/1003). + *t4). *第2题(9.0分)题号:439/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:1982年我国第三次人口普查,结果全国人口为10.3亿,假如人口增长率为5%。

c语言程序填空练习题

c语言程序填空练习题

C语言程序填空题1.阅读以下程序并填空。

以下程序的功能是:输出三位正整数中能被13整除的数#include <stdio.h>main(){ int n;for( n=100 ; n<=999 ;n++) if(n%13!=0) continue ; else printf("%d\n",n);} 2.阅读以下程序并填空。

以下程序的功能是:输出100以内能被3整除且个位数为6的所有整数 #include <stdio.h>main(){ int i,j;for(i=0; i<=9 ;i++){ j= i*10+6 ;if(j%3!=0) continue;else printf("%d\n",j);} }3.阅读以下程序并填空。

以下的程序功能是:求101至999之间所有能被13整除的整数之和和个数 #include <stdio.h>main(){ int i,cnt;float sum=0;i=101; cnt=0;while( i<=999 ){ if( i%13==0 ){ sum+=i; cnt++; } i++ ; )printf("sum=%f,cnt=%d\n”,sum,cnt);}4.阅读以下程序并填空。

该程序的功能是:用递归的方法求菲波那契数列2,2,4,6,10,16, 26,42,68,110,……的第10项 #include <stdio.h>long fib(int n){ if(n>= 3 )return fib(n-1)+fib(n-2);elsereturn 2 ; }main(){ printf("%ld\n”,fib(10)); }5.阅读以下程序并填空。

该程序的功能是:用递归法求:1 + 2 + 3 + + n#include <stdio.h> long Sum(int n) { if(n> 1 )return n+Sum(n-1); else return 1 ;)6.阅读以下程序并填空。

c语言程序填空(含答案)

c语言程序填空(含答案)

【程序填空】功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

len=length(str...);I.nt length ........(p)N.++..;P.++..;【程序改错】功能:将一个字符串中的大写字母转换成小写字母。

bool (char)......fun(char *c)fun= c;(return *c)..........puts(*p);(putchar(*p)).............【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。

------------------------------------------------*/ #include<stdio.h>void wwjt(); void swap(int *a,int *b){/**********Program**********/ /********** End **********/ }main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x<y)swap(&x,&y);if(x<z)swap(&x,&z);if(y<z)swap(&y,&z);printf("%3d%3d%3d",x,y,z); wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];IN=fopen("in.dat","r");if(IN==NULL){printf("Read FILE Error"); }OUT=fopen("out.dat","w"); if(OUT==NULL){printf("Write FILE Error"); }for(n=0;n<3;n++){for(m=0;m<2;m++){fscanf(IN,"%d",&i[m]); }swap(&i[0],&i[1]);fprintf(OUT,"%d\n",i[0]); fprintf(OUT,"%d\n",i[1]); }fclose(IN);fclose(OUT);}/*-------------------------------------------------------【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出。

c语言程序填空含答案

c语言程序填空含答案

c语言程序填空含答案在学习C语言的过程中,掌握程序填空的技巧是非常关键的。

程序填空题目可以帮助我们加深对C语言语法和逻辑的理解,并锻炼我们的编程思维能力。

在本文中,将为大家提供一些C语言程序填空题及其答案,希望对大家的学习有所帮助。

1. 下面是一个求最大公约数的C语言程序,请填写缺失的代码。

```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个正整数:");scanf("%d%d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2)); return 0;}```答案:```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个正整数:");scanf("%d%d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2));return 0;}```2. 下面是一个计算平均数的C语言程序,请填写缺失的代码。

```c#include <stdio.h>double average(int arr[], int length) {int sum = 0;for (int i = 0; i < length; i++) {sum += arr[i];}return sum / length;}int main() {int numbers[] = {5, 10, 15, 20, 25};int length = sizeof(numbers) / sizeof(numbers[0]);printf("平均数为:%.2f", average(numbers, length));return 0;}答案:```c#include <stdio.h>double average(int arr[], int length) {int sum = 0;for (int i = 0; i < length; i++) {sum += arr[i];}return (double)sum / length;}int main() {int numbers[] = {5, 10, 15, 20, 25};int length = sizeof(numbers) / sizeof(numbers[0]);printf("平均数为:%.2f", average(numbers, length));return 0;}```3. 下面是一个字符串反转的C语言程序,请填写缺失的代码。

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

·程序填空题·
1.(最大连续子段和)给出一个数列(元素个数不多于100),数列元素均为负整数、正整数、0。

请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。

例如数列为4,-5,3,2,4时,输出9和3;数列为1 2 3 -5 0 7 8时,输出16和7。

#include <stdio.h>
int a[101];
int n,i,ans,len,tmp,beg;
int main(){
scanf("%d",&n);
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
tmp=0;
ans=0;
len=0;
beg= ①;
for (i=1;i<=n;i++){
if (tmp+a[i]>ans){
ans=tmp+a[i];
len=i-beg;
}
else if ( ②&&i-beg>len)
len=i-beg;
if (tmp+a[i] ③){
beg= ④;
tmp=0;
}
else
⑤;
}
printf("%d %d\n",ans,len);
return 0;
}
①_______________________ ②_______________________
③_______________________ ④_______________________
⑤_______________________
2、读入一个字符串,如果出现了减号' - ' ,减号两侧又同时为小写字母、大写字母或数字,就需要按照ASCII码的顺序把' - ' 所代表的省略部分不全。

例如:' a – d ' 实际是' abcd ',' E – H ' 实际是' EFGH ' ,' A – A ' 实际上是' A ' ,' 0 - 7 ' 实际上是' 01234567 ' 。

请编程输出转化后的字符串。

#include<stdio.h>
#include<string.h>
int main(void){
long length i,j;
char s[100];
scanf("%s",s);
length = strlen(s);
s[length] = ①;
i = ②;
while(i<length)
if( ③)
{
printf("%c",s[i]);

}
else
{
if( ((s[i-1]>='a') && (s[i+1]<='z')) || ((s[i-1]>='A') &&
(s[i+1]<='Z')) || ((s[i-1]>='0') && (s[i+1]<='9')) )
{
for( ⑤;j<=s[i+1];j++)


}
else
{
printf("%c",s[i]);
i++;
}
}
return 0;
}
①_______________________ ②_______________________
③_______________________ ④_______________________
⑤_______________________ ⑥_______________________
⑦_______________________。

相关文档
最新文档