void p1 int 10main() { int i; int &k = i; int j = 6; k = j; printf("%d",i); } vc6.0编译出错,高手指点!

当前位置: >
& 编写程序1-3 5-7 9-11 用C语言编写程序计算并输出数列1-1/3+1/5-1/7+1/9-1/11+·...
编写程序1-3 5-7 9-11 用C语言编写程序计算并输出数列1-1/3+1/5-1/7+1/9-1/11+·...
收集整理:/ 时间:
用C语言编写程序计算并输出数列1-1/3+1/5-1/7+1/9-1/11+·。double s=0.0for(int i=1;i&=101;i+=2)if(((i+1)/2)%2==1)s+=1.0/i;elses-=1.0/i;
#include &stdio.h&#include &stdlib.h&int main(){ double result=0; double s=1; int count=1; do{ if(count%2==1) { result+=。
请问是输出分数形式,还是整型,还是浮点型的?
#include&stdio.h& main() { float a=1.0,s=0; for(i=1;i&=101;i+=2) { s=s+a/i; a=-a; } printf("%8.5f",s); getchar();。C 语言中的编程 1*3*5*7*9*11*13应该如何编程程序如下:main(){int i,sum=1;for(i=1;i&=13;i+=2)sum*=i;printf("1*3*5*7*9*11*13=%d\n",sum);}在程序运行过程中,其值不能被改变的量称为常量。常量区分为不同的类型,如12、0、3为整型常量,1.6、-1.23为实型常量,a、b为字符常量。 其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。例如这个a就是变量,可以给它一个数值。假设a=100;这时a就相当于数值100,a=200,a就相当于200. 建议还是去买本书慢慢看.因为这方面的知识是比较重要,也不是一两句话就能说明白的.学习编程的群直接上QQ搜索相关群就可以了。
#include&stdio.h& void main() { int i=1,m=1; do{ m*=i; i+=2;} whiel(i&=13);printf("1*3*5*7*9*11*13=%d\n",m); }
qq群,才建立:或者加QQ: 看样子才入门啊。..别急,慢慢来
#include&stdio.h&void main(){ int mux=1; for(i=1;i&=13;i++) {if(i%2) mux*=i; } printf("1*3*5*7*9*11*13=%d\n",mux)。C编程S=1-2/3+3/5-5/7+8/9-13/11+21/13 int S=1,i=1,fz=2,fm=3; while (fz&21){ s=(-1)^i*(fz/fm); fm+=2; fz+=i;i=fz-i; } 输出没写,要算更多的项,把(fz&21)改下ok
这个怎么用while,你要什么效果???编程求S=1!-3!+5!-7!+9!-11!+13!-15!+17!-19!+21!。#include &stdio.h&void main(){ //编程求S=1!-3!+5!-7!+9!-11!+13!-15!+17!-19!+21!。 //变量S及保存阶乘的变量p,其类型定义为double, 以防止溢出 double p=0,s=0; int i=0; int q=1;//确定符号 for(i=1;i&=21;i+=2){ p=1; //求p的阶乘 for(int j=1;j&=i;j++){ p=p*j; } printf("%d!=%f\n",i,p); s+=p*q; q=q*(-1); } printf("s=%f\n",s);}1-3+5-7+9-11+13-15+17-19+21。。+101用C语言怎么编程序 。最佳答案1:楼上的高手们已经解答的很详细了也很简练。 我只是发表一下个人见解 虽然程序有些冗繁,很罗嗦不过本人感觉还是好理解一些。 include &stdio.h& include &conio.h& void main {int i,j, sum = 0; for(i=1;i&=101;i+=4) sum+=i; for(i=-3;i&-99;i-=4) sum+=i; printf("%d",sum); getch();//如果是VC不用写这句 } 最佳答案2:2L的已经很简单了,这个式子一眼就可以看出是1到101之间的奇数和,所以从1遍历到101,增量为2就能遍历其间所有的奇数,再加一个轮转因此改变下符号就可以了。// S:~ 我给你写个完整版。。。#include &stdio.h&int main(void){ int i, sum = 0; int tf = 1; // 轮转因子用来变符号 for(i = 1; i &= 101; i += 2, tf = -tf) sum += i * printf("sum=%d\n", sum); 。
可以写两个for循环,第一个从1开始自加4求和,第二个for循环从3开始自加4,最后求这两个结果的差就达到效果了!
int flag=1; int sum=0; for(int i=1;i&=101;i+=2) { sum=sum+flag*i; flag=- }
int sum(){ int start = 1; int n = 51; for(int i = 2; i & i ++){ int com = 2*n -1; //判断是否可以被2整除,可以的话就是减法,否则就是加。
int flag=1; int sum=0; for(int i=1;i&=101;i+=2) { sum+=flag*i; flag*=-1; }已知数列:1-1/3+1/5-1/7+1/9-1/11+。.编一个程序,求其前十。#include &stdio.h&#define SIZE 19 void main(){ float fsum=0; int floop=0; float ftemp=0; floop=1; do { if((floop+1)%4==0) { ftemp= fsum=fsum-1/ } else { ftemp= fsum=fsum+1/ } floop=floop+2; }while(floop&=SIZE); printf("%f\n",fsum); getch();}已经帮你调试了,已经OK了。
给你个函数吧:double fun(int n){ double tmp, tmp = 1.0; sum = 0; for(int i=0;i&n;++i)
{ sum += tmp/(2*i+1); tmp = -}re。
#include&stdio.h&void main(){int n,s;int s1=0,s2=0;for(n=0;n&5;n++){s1=s1+1/(1+4n);s2=s2+1/(3+4n);}s=s1-s2;printf("1-1/3。编写java程序:已知π/4=1-1/3+1/5-1/7+1/9-1/11+。 采用二十。你俩是一个人问的吧,呵呵呵我给你改成了20000次,结果才和π近似.如果非要20次,把20000改称20就行了------------------------------------------------------------------------------------------------public class test { /** * @param args */ public static void main(String[] args) { //分母 double j = 1; //总和 double t = 0; //正负交替 double dig=1; for (int i = 0; i & 20000; i++) { t+=digit*(1 / j); j+=+2; //每次运行后改变符号 digit=digit*(-1); } System.out.println("π="+4*t); System.out.println("π/4="+t); System.out.println("π/4=1-1/3+1/5-1/7+1/9-1/11+。 的运行结果是----"+t); }}--------------------------------------------------------。
你好,按照你的要求代码如下:public class test { public static void main(String[] args) { double a = 0; for (int i = 0; i & 20; i += 2)。
编写java程序:已知π/4=1-1/3+1/5-1/7+1/9-1/11+。 采用二十次循环,就π得近似值 没分了 好心人帮帮忙我也不会!!!!
. 采用二十次循环,就π得
//循环次数20 int count = 20; double sum = 0; for(int i = 0; i & i++){ sum += 1.0 / (4 * i + 1) - 1.0 / (4 * i + 3); }。
public class Pi { public static void main(String[] args) { double b = 0.0; for (int i = 1; i & 21; i++) { b += (i % 2 ==。
package chn1;public class RequestPI { public double requestPI(int n){ double pi = 0.0d; double sign = 1; for(int i = 1;i。
public class PaiTest { public static void main(String[] args) {
double p =0; for(int i = 1 ; i&=20000 ; i++ ){
double zhi = 0d;int j = 1;for(int i = 1 ; i & 40; ){ zhi += j/i; j *= -1; i += 2;} System.out.println(zhi);将zhi打印出来就行了
同学 我爱死你了 我们选修作业就有这个编程:输入一个奇数n,求1-3+5-7+9-11+……-/+n#include &stdio.h& #include &math.h& main() { int sum=0,i,n; printf("Enter n for loop\n"); scanf("%d",n);
for(i=0;i&n;i++) {
if((i+1)%2)
sum = sum -
sum = sum +
printf("sum is %d",sum); }
我晕。C语言书上的程序呀。
算法书上有。再者看一下是用什么语言编程。 方法一: #include&stdio.h& void main() {
int sum=1,i,j=2;
说一下什么语言啊~~汗 自己写的运行了可以 #include&stdio.h& void sum(int n) {
for(i=0;i&n;i=i+2)
#include&stdio.h& main(){ int sum=0,i,j=1; for(i=1;i&=101;i++) {sum+=i*j;j=-j;i=i+1; }printf("%d\n",sum); }。我这里有一道C语言的编程题:1!+3!+5!+7!+9!+11!+13!+15。#include &stdio.h&void main(){ int i,j; long sum=0; for(i=0;i&7;i++) {
c=1; for(j=1;j&=i*2+1;j++) { c *=
} sum += } printf("%d",sum);} 这个只能算到13的阶乘,到15会越界。这种题目用就两种思路,一种迭代,一种递归
int i,k,x;for(i=1;i&16;i+=2){ for(k=i;k&1;k--) { x=x*k; } printf("%d\t",x);}
int i,j; double sum = 0;int temp = 1; for(i=1;i&=15;) {
for (j=1;j&=i;j++)
temp = temp*j; sum = sum + }。用循环语句求1-3+5-7+9-11+…+(2n-1)值。
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Zhidao extends JFrame{ private JTextField jtf=new JTextField(12); private JButton jbt=new JButton("提交"); public Zhidao(){ setLayout(new GridLayout(2,1,3,3)); jtf.setPreferredSize(new Dimension(200,28)); JPanel jp1=new JPanel(); jp1.setLayout(new FlowLayout(FlowLayout.CENTER)); JLabel jlb=new JLabel("请输入一个正整数"); jlb.setFont(new Font("宋体",Font.BOLD,18)); JPanel jp2=new JPanel(); jp1.add(jlb); jp2.add(jtf); jp2.add(jbt); a。
编写程序1-3 5-7 9-11相关站点推荐:
赞助商链接
编写程序1-3 5-7 9-11相关
免责声明: 机电供求信息网部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递 更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您想举报或者对本文章有异议,请联系我们的工作人员。C语言终极面试题【1】
C语言终极面试题【1】
4、设有以下说明和定义:typedef union { int k[5];} DATE;struct data { DATE}DATE则语句 printf(“%d”,sizeof(struct date)+sizeof(max));的执行结果是?答 、结果是:52。DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52.当然…在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20
5、请写出下列代码的输出内容#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf(“b,c,d:%d,%d,%d”,b,c,d);return 0;}答:10,12,120
6、写出下列代码的输出内容#includeint inc(int a){return(++a);}int multi(int*a,int*b,int*c){return(*c=*a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2){INCp=&int temp =p(arg1);fun(&temp,&arg1, arg2);printf(“%d\n”,*arg2);}
main(){show(multi,10,&a);return 0;}答:110
7、请找出下面代码中的所以错误说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
1、#include”string.h”2、main()3、{4、 char*src=”hello,world”;5、 char* dest=NULL;6、 int len=strlen(src);7、 dest=(char*)malloc(len);8、 char* d=9、 char* s=src[len];10、 while(len–!=0)11、 d++=s–;12、 printf(“%s”,dest);13、 return 0;14、}答:方法1:int main(){char* src = “hello,world”;int len = strlen(src);char* dest = (char*)malloc(len+1);//要为\0分配一个空间char* d =char* s = &src[len-1];//指向最后一个字符while( len– != 0 )*d++=*s–;*d = 0;//尾部要加\0printf(“%s\n”,dest);free(dest);// 使用完,应当释放空间,以免造成内存汇泄露return 0;}方法2:#include #include main(){char str[]=”hello,world”;int len=strlen(str);for(int i=0; i<LEN 2; i++) {t=str[i];str[i]=str[len-i-1]; str[len-i-1]=t;}printf("%s",str);return 0;}
8、请问下面程序有什么错误?int a[60][250][1000],i,j,k;for(k=0;k&=1000;k++)for(j=0;j&250;j++)for(i=0;i&60;i++)a[i][j][k]=0;答案:把循环语句内外换一下
9、请问下面程序会出现什么情况?. #define Max_CB 500void LmiQueryCSmd(Struct MSgCB * pmsg){unsigned char ucCmdN......
for(ucCmdNum=0;ucCmdNum<MAX_CB;UCCMDNUM++) {......;}答案:死循环
12、以下代码中的两个sizeof用法有问题吗?void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{for( size_t i=0; i<SIZEOF(STR) sizeof(str[0]); ++i ) if( 'a'&=str[i] && str[i]&='z' )str[i] -= ('a'-'A' );}char str[] = "aBcDe";cout && "str字符长度为: " && sizeof(str)/sizeof(str[0]) &&UpperCase( str );cout && str &&答:函数内的sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str是一个静态定义的数组,因此其大小为6,函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。
13、写出输出结果main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}输出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)int *ptr=(int *)(&a+1);则ptr实际是&(a[5]),也就是a+5原因如下:&a是数组指针,其类型为 int (*)[5];而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同a是长度为5的int数组指针,所以要加 5*sizeof(int)所以ptr实际是a[5]但是prt与(&a+1)类型是不一样的(这点很重要)所以prt-1只会减去sizeof(int*)a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5].14、请问以下代码有什么问题:int main(){char *str=&a;strcpy(str,"hello");printf(str);return 0;}没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。char* s="AAA";printf("%s",s);s[0]='B';printf("%s",s);有什么错?"AAA"是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。cosnt char* s="AAA";然后又因为是常量,所以对是s[0]的赋值操作是不合法的。
18、下面的语句会出现什么结果?char szstr[10];strcpy(szstr,”″);答案:长度不一样,会造成非法的OS,应该改为char szstr[11];
19、(void *)ptr 和 (*(void**))ptr的结果是否相同?答:其中ptr为同一个指针.(void *)ptr 和 (*(void**))ptr值是相同的
20、问函数既然不会被其它函数调用,为什么要返回1?int main(){int x=3;printf(“%d”,x);return 1;}答:mian中,c标准认为0表示成功,非0表示错误。具体的值是某中具体出错信息24、char a[10],strlen(a)为什么等于15?运行的结果#include “stdio.h”#include “string.h”
void main(){char aa[10];printf(“%d”,strlen(aa));}
sizeof()和初不初始化,没有关系;strlen()和初始化有关。
char (*str)[20];/*str是一个数组指针,即指向数组的指针.*/char *str[20];/*str是一个指针数组,其元素为指针型数据.*/
25、long a=0×801010;a+5=?答:0×801010用二进制表示为:“01 00”,十进制的值为8392720,再加上5就是8392725
26、给定结构struct A{char t::4;char k:4;unsigned short i:8;};问sizeof(A) = ?给定结构struct A{char t:4; 4位char k:4; 4位unsigned short i:8; 8位 // 偏移2字节保证4字节对齐}; // 共8字节
27、下面的函数实现在一个数上加一个数,有什么错误?请改正。int add_n ( int n ){static int i = 100;i +=}当你第二次调用时得不到正确的结果,难道你写个函数就是为了调用一次?问题就出在 static上28、给出下面程序的答案#include#include #include #include #include #include typedef struct AA{int b1:5;int b2:2;}AA;void main(){AAchar cc[100];strcpy(cc,”abcdefghijklmnopqrstuvwxyz”);memcpy(&aa,cc,sizeof(AA));cout && aa.b1 &<ENDL; cout && aa.b2 &<ENDL; }答案是 -16和1首先sizeof(AA)的大小为4,b1和b2分别占5bit和2bit.经过strcpy和memcpy后,aa的4个字节所存放的值是:0,1,2,3的ASC码,即10,所以,最后一步:显示的是这4个字节的前5位,和之后的2位分别为:10000,和01因为int是有正负之分  所以:答案是-16和1
29、求函数返回值,输入x=9999;int func ( x ){int countx = 0;while ( x ){countx ++;x = x&(x-1);}}结果呢?知道了这是统计9999的二进制数值中有多少个1的函数,且有24+512+256+15
9×1024中含有1的个数为2;512中含有1的个数为1;256中含有1的个数为1;15中含有1的个数为4;故共有1的个数为8,结果为8。1000 - 1 = 0111,正好是原数取反。这就是原理。用这种方法来求1的个数是很效率很高的。不必去一个一个地移位。循环次数最少。
30、分析:struct bit{ int a:3;int b:2;int c:3;};int main(){char *c=(char*)&s;cout&<SIZEOF(BIT)<<ENDL; *c=0x99;cout && s.a &<ENDL <<s.b<<endl<<s.c<< int a=-1;printf("%x",a);return 0;}输出为什么是41-1-4ffffffff因为0x99在内存中表示为 100 11 001 , a = 001, b = 11, c = 100当c为有符合数时, c = 100, 最高1为表示c为负数,负数在计算机用补码表示,所以c = -4;同理b = -1;当c为有符合数时, c = 100,即 c = 4,同理 b = 3
31、下面这个程序执行后会有什么错误或者效果:#define MAX 255int main(){unsigned char A[MAX],i;//i被定义为unsigned charfor (i=0;i&=MAX;i++)A[i]=i;}解答:死循环加数组越界访问(C/C++不进行数组越界检查)MAX=255数组A的下标范围为:0..MAX-1,这是其一..其二.当i循环到255时,循环内执行:A[255]=255;这句本身没有问题..但是返回for (i=0;i&=MAX;i++)语句时,由于unsigned char的取值范围在(0..255),i++以后i又为0了..无限循环下去.
32、写出sizeof(struct name1)=,sizeof(struct name2)=的结果struct name1{}
struct name2{}
sizeof(struct name1)=8,sizeof(struct name2)=12在第二个结构中,为保证num按四个字节对齐,char后必须留出3字节的空间;同时为保证整个结构的自然对齐(这里是4字节对齐),在x后还要补齐2个字节,这样就是12字节。
33、struct s1{int i: 8;int j: 4;int a: 3;};
struct s2{int i: 8;int j: 4;int a:3;};
printf("sizeof(s1)= %d\n", sizeof(s1));printf("sizeof(s2)= %d\n", sizeof(s2));result: 16, 24第一个struct s1{int i: 8;int j: 4;int a: 3;};理论上是这样的,首先是i在相对0的位置,占8位一个字节,然后,j就在相对一个字节的位置,由于一个位置的字节数是4位的倍数,因此不用对齐,就放在那里了,然后是a,要在3位的倍数关系的位置上,因此要移一位,在15位的位置上放下,目前总共是18位,折算过来是2字节2位的样子,由于double是8字节的,因此要在相对0要是8个字节的位置上放下,因此从18位开始到8个字节之间的位置被忽略,直接放在8字节的位置了,因此,总共是16字节。第二个最后会对照是不是结构体内最大数据的倍数,不是的话,会补成是最大数据的倍数
34、在对齐为4的情况下struct BBB{long num;char *short ba[5];}*p;p=0x1000000;p+0x200=____;(Ulong)p+0x200=____;(char*)p+0x200=____;希望各位达人给出答案和原因,谢谢拉解答:假设在32位CPU上,sizeof(long) = 4 bytessizeof(char *) = 4 bytessizeof(short int) = sizeof(short) = 2 bytessizeof(char) = 1 bytes
由于是4字节对齐,sizeof(struct BBB) = sizeof(*p)= 4 + 4 + 2 + 1 + 1/*补齐*/ + 2*5 + 2/*补齐*/ = 24 bytes (经Dev-C++验证)
p=0x1000000;p+0x200=____;= 0x1000000 + 0x200*24
(Ulong)p+0x200=____;= 0x1000000 + 0x200
(char*)p+0x200=____;= 0x1000000 + 0x200*4
35、找错Void test1(){char string[10];char* str1="";strcpy(string, str1);// 溢出,应该包括一个存放'\0'的字符string[11]}
Void test2(){char string[10], str1[10];for(I=0; I&10;I++){str1[i] ='a';}strcpy(string, str1);// I,i没有声明。}
Void test3(char* str1){char string[10];if(strlen(str1)&=10)// 改成&10,字符溢出,将strlen改为sizeof也可以{strcpy(string, str1);}}
36、写出输出结果void g(int**);int main(){int line[10],i;int *p= //p是地址的地址for (i=0;i&10;i++){*p=i;g(&p);//数组对应的值加1}for(i=0;i&10;i++)printf("%d\n",line[i]);return 0;}
void g(int**p){(**p)++;(*p)++;// 无效}输出:12345678910
37、写出程序运行结果int sum(int a){auto int c=0;static int b=3;c+=1;b+=2;return(a+b+c);}
void main(){int I;int a=2;for(I=0;I&5;I++){printf("%d,", sum(a));}}// static会保存上次结果,记住这一点,剩下的自己写输出:8,10,12,14,16,
38、评价代码int func(int a){switch(a){case 1: 30;case 2: 20;case 3: 16;default: 0}}则func(1)=?// b定义后就没有赋值
int a[3];a[0]=0; a[1]=1; a[2]=2;int *p, *q;p=a;q=&a[2];则a[q-p]=a[2]解释:指针一次移动一个int但计数为1
39、请问一下程序将输出什么结果?char *RetMenory(void){char p[] = “hellow world”;}void Test(void){char *str = NULL;str = RetMemory();printf(str);}RetMenory执行完毕,p资源被回收,指向未知地址。返回地址,str的内容应是不可预测的, 打印的应该是str的地址
40、写出输出结果typedef struct{int a:2;int b:2;int c:1;}
t.a = 1;t.b = 3;t.c = 1;
printf("%d",t.a);printf("%d",t.b);printf("%d",t.c);
t.a为01,输出就是1t.b为11,输出就是-1t.c为1,输出也是-13个都是有符号数int嘛。这是位扩展问题01111编译器进行符号扩展
41、对下面程序进行分析void test2(){char string[10], str1[10];for(i=0; i&10; i++){str1[i] = 'a';}strcpy( string, str1 );}解答:如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分;str1不能在数组内结束:因为str1的存储为:{a,a,a,a,a,a,a,a,a,a},没有'\0'(字符串结束符),所以不能结束strcpy( char *s1,char *s2)他的工作原理是,扫描s2指向的内存,逐个字符付到s1所指向的内存,直到碰到'\0',因为str1结尾没有'\0',所以具有不确定性,不知道他后面还会付什么东东。正确应如下void test2(){char string[10], str1[10];for(i=0; i&9; i++){str1[i] = 'a'+i; //把abcdefghi赋值给字符数组}str[i]='\0';//加上结束符strcpy( string, str1 );}
发表评论:
馆藏&17475
TA的推荐TA的最新馆藏[转]&[转]&void main() { int i=1,j=1,k=2; if((j++||k++&&i++) printf(&%d,%d,%d&#92;n&,i,j,k); }_百度知道

我要回帖

更多关于 void p1 int 10 的文章

 

随机推荐