求解C语言基础题。
按照你的要求编写的求出现最长的数字和位置的C语言程序如下
#include
int main(){
int a[]={1,1,2,2,2,3,3,3,3,5,5,6,6,6,6};
int length=1,pos,i,j;
for(i=1;i<sizeof(a)/sizeof(a[0]);i++){
if(a[i]==a[i-length]){
length++;
}
}
printf("长度为%d
",length);
for(i=length-1;i<sizeof(a)/sizeof(a[0]);i++){
if(a[i] == a[i-length+1]){
for(j=i-length+1;j<=i;j++){
if(j==i){
printf("%d ",a[j]);
}else{
printf("%d,",a[j]);
}
}
pos = i-length+1;
printf("位置为%d
",pos+1);
}
}
return 0;
}
#include
#include
int exam(char *s){
int y=strlen(s),i,sum=0,n,m,k;
for(i=0;i<y;i++) {
if(y>5) return -1;
if(s[i]'9') return -1;
}
i=y-1;
m=0;
do{
n=s[i]-'0';
k=m;
while(k){n=n*10;k--;}
sum+=n;
i--;
m++;
}while(i>=0);
return sum;
}
int main() {
int a = 0; // 素数的个数
int num = -1; // 输入的整数
char s[30];
while (num<0)
{
printf("请输入大于0且小于等于32767的整数n:");
gets(s);
num=exam(s);
//if (num > 0 && num <= 32767) break;
}
for (int i = 2; i < num; i++) {
if (num % i == 0) {
a++; // 素数个数加1
}
}
if (a == 0) {
printf("%d是素数。
", num);
}
else {
printf("%d不是素数。
", num);
}
return 0;
}
随便输入吧!
一、平台:数组中连续相等的元素就是一个平台。
二、最长平台:就是在所有平台中找出最长的那个。
三、方法不止一种,从完整程序思路,至少包含一个实现功能的函数及打印输出的函数。
下面是我写的演示代码:
遍历数组,找出最长平台,返回其在数组中起点和终点位置(返回值是指针数组)。异常直接抛出自行处理。
#include<stdio.h>
#define ML 20
int **findMaxG(int nums[],int len);//找出最长平台,并返回平台起始和结束的位置(指针数组)。异常返回NULL
int showMaxG(int *pMax[2]);//打印输出最长的平台。异常返回0
int main()
{
int **pMax=NULL;
int nums[ML]={1,1,2,3,3,3,4,5,6,6,7,7,7,7,8,8,8,9,10,10};
pMax=findMaxG(nums,ML);
return !showMaxG(pMax);
}
int showMaxG(int *pMax[2])
{
int *p0=pMax[0];
if(pMax[0]==NULL || pMax[1]==NULL || pMax[1]<pMax[0]) return 0;
printf("最长平台为:");
while(p0<=pMax[1])
printf("%d ",*p0++);
printf("
");
return 1;
}
int **findMaxG(int nums[],int len)
{
static int *pMax[2];
int n=1,maxn=1,*p0=nums,*p1=nums;
if(len<=0) return NULL;
pMax[0]=pMax[1]=nums;
while(p0<&nums[len-1])
{
p1=p0+1;
while(p1<&nums[len-1])//统计当前平台长度
{
if(*p1!=*p0)//开始统计新的平台,之前平台在p1-1处结束
break;
else
n++,p1++;
}
if(n>maxn)
maxn=n,pMax[0]=p0,pMax[1]=p1-1;//记录最大的平台
p0=p1,n=1;//复位,准备统计下一个平台
}
return pMax;
}
C语言基础题,请懂的人解答
第一题,因为x,y是整型,所以x=1,y=4\/5=0(对于int型而言,此处x,y都是截取整数部分)所以,不论d是多少,最后d*y肯定是0 第二题,从最右边开始ⅹ=ⅹ*y=-4 y=y-ⅹ=2+4=6 y=y+y=6+6=12
几道C语言题,带上解释呀,多谢
第一题:B,输出为小m,可以查看一下printf的函数原型,后面的参数是以栈的形式入参,所以输出的时候也会按照栈的方式输出参数,弹出栈顶 第二题:A getchar(),的意思是每次从终端读取一个字符,所以c1得到的是字符a,C2得到的是回车符 第三题:D,a和b同为正或者同为负,就是a,b同号的表达...
两道C语言题目,求答案和解析,谢谢~
第10题:【B】A:连续赋值,除了最右的项外,其余所有项都必须是可以赋值的变量,不可以是常量或者表达式。B:y==1是一个逻辑表达式,从题干得出其值为0,再将其赋值给x,最终结果是x被赋值0。C:i=float(x);语法错了。如果要实现将x强制转换为float类型并赋值给i,应该写作i=(float)(x);D...
c语言的题(要解析)
选A执行10次。看循环体,x = 0; i <= 9 && x != 876。首先看x,由于整个过程中没有对x的操作,所以x始终为0;也就是说x != 876这句话始终是对的。所以只需要看i了,i=0开始循环,程序可以一直执行到i=9.这中间刚好执行10次,也就是说程序相当于输出了十个10.其实上面的代码跟下面结...
C语言的题,都不难,帮忙解答,追加悬赏喔。麻烦把各个选项都解释解释最好...
第二题:这个union是表示,一块储存空间用short,long,char,三种类型来描述,所以c[0] 与i[0]一样的。这个程序是要打印s->c[0],printf("%x\\n", s ->c[0])这句里的%x表示打印的数字是十六进制的。由于c[0]里面放的是0x39,所以这里打印的正好是39.第三题:与第二题类似,注意这里求...
求这几题C语言程序设计题目的解析
题目的解释(见图)
求帮解释一下C语言题
2、第一次调用recursion函数,执行开始的c=getchar(); putchar(c); 两个语句,输入x,并显示x(这时屏幕上显示只有一个x)3、执行if判断,输入的不是“#”符号,所以开始第二次调用自己,这是函数最后的putchar(c); 语句还没有执行,于是将这条语句的地址压入堆栈,需要注意的是,此时的变量c...
有关C语言的几道题,求答案及解释
1、题目倒数第二句改为“输入字符A后”的话,ch的值是'A',getchar()是从标准输入流读取一个字符,并返回这个字符,赋值给了ch,所以ch的值就是你输入的那个字符,你输入A,它的值就是A 2、暂时还不是很明白,C和D都能在win-tc下编译通过,值都存在变量str3,和str4里面,可以通过printf("...
求这个c语言题目的解题思路和解法?
解题思路:1.采用二维数组(int型)存放所有学生编号,一行为一个团体。2.用一个一维数组存放所有疑似病的学生编号 3.按编号查询所有团体的学生,4.查找到后,即将该行所有编号存入2.中的数组 5.输出2.中的数组即可。编写程序时,第4.和5.采用递归调用。程序如下(该程序已经在WIN-TC上通过)includ...
C语言 基础题求解答
(lovegjh757原创)最好不要用递归算法,太麻烦,最简单而且便于理解的办法如下:设甲乙丙丁四人的偷盗值分别为ABCD,初始值为0(也就是非小偷)。然而四位的供词要么真要么假,也就是说甲乙丙每人所提到的两人中必有一人是小偷。因此:甲供词:B+D=1(有小偷)乙供词:B+C=1(有小偷)丙供词:A+D...
戏甘孚卫: 16.计算存放在数组score中12位学生成绩的平均分,并输出高于平均分的人数.#include <stdio.h> void main() { int score[N]={67,78,66,79,73,82,69,85,77,80,93,72}; int i; float s = 0; for(i = 0; i < N; i++) { s += score[i]; } s = s/N; int n = 0; for(i = 0; i < N;...
叶城县14712081463: 入门C语言程序求解两道入门题目:1.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比.计算公式为p=(1+r... - ?
戏甘孚卫:[答案] 第一题答案 #include #include main() { double i,j,k; j=0.09; k=10; i=(1+j); printf("%lf arised to %lf is %lf",i,k,pow (i,k)); 第二题太简单,你自己做.
叶城县14712081463: 200分求解c语言入门题 - ?
戏甘孚卫: 1、#include main() { int m,n,max,min,k; printf("输入两个正整数:"); scanf("%d%d",&m,&n); max=m>n?m:n; min=mwhile(true) { k=(max%min); if(k==0) { break; } max=min; min=k; } printf("最大公约数:%d\n",min); printf("最小公...
叶城县14712081463: C语言 基础编程求解题!?
戏甘孚卫: 先乘除,后加减.括号优先. 先(int)(x+y),x+y=7.2,int(7.2)=7; 然后7%2=1; 再然后1/4=0,注意1,4都是整数,因此做整数除法,结果只保留整数商. 然后x+0=x=2.5
叶城县14712081463: c语言基础题 - ?
戏甘孚卫: 因为putchar(a)这个函数是输出变量a对应的字符值'a'.这个函数类似于:printf("%c", a) 如果你要输出整数97的话,应该是:printf("%d", a)
叶城县14712081463: C语言基础考试题?高分求解答!!?
戏甘孚卫: 第一题:1 (算数运算符优先级高于逻辑运算符) 此题优先级为 / + == && || 即 a && (b+c) || b == (c/2) 带入数据就是 3 && 9 || 4 == 2 再化简就是 3&&9||0 结果为1 第二题:0,6 数组下标从0开始 第三题:函数 第四题:9 你理解错了 表达式(a,b)...
叶城县14712081463: 几道C语言的基础题,求解!!! 求讲解!~!!! - ?
戏甘孚卫: 1:5 逗号表达式的值是最右边表达式的值. 2:c 3:5 4:10 5:b
叶城县14712081463: 几道C语言的基础题,求解!!! 求讲解!~!!! - ?
戏甘孚卫: 1、int c;c=a>b?a++:b++;则c=5原因:?:拆开就是if(a>b) c=a++;else c=b++;2、c解释见http://zhidao.baidu.com/question/282749106.html3、3个因为到第3个字符,'\0'时,会当作串尾处理4、输出为125、b是错误的~ad为普通int,c是赋值给一个long型变量
叶城县14712081463: 求解几道基础C语言题 - ?
戏甘孚卫: int mi(double x,int y){ if(y<0) return pow(1/x,y); else return pow(x,y); } int f(int x){ int sum=0; while(x>0) {sum+=x%10;x/=10;} return sum; }2次1次 int chu(int m,int n){ int i; for(i=m;i<=n;i++){ if(i%3==0||i%7==0) continue; printf("%d\n",i); } } void prime(){ ...
叶城县14712081463: 跪求:C语言的一个基础编程题 - ?
戏甘孚卫: void calvalue(){ int i; totnum = 0; totcnt = 0; totpjz = 0; for (i = 0; i< 200 ; i++) { if(xx[i] >0 ) totnum++; if(((xx[i]%10000)/1000 + (xx[i]%1...