这个c程序的结果为什么是这样的呢 #c include stdio.h<stdio.h> int main(void) { int n='C';

c语言习题哟_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
c语言习题哟
上传于||文档简介
&&c​语​言​习​题​哟
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩14页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢热门搜索:
您现在的位置是: &
> #include&stdio.h&
void main(void)
{int n,k,derivata,a[10],i
printf(&n=&) scanf(& d&,&n)
#include&stdio.h&
void main(void)
{int n,k,derivata,a[10],i
printf(&n=&) scanf(& d&,&n)
资 源 简 介
#include&stdio.h&
void main(void)
{int n,k,derivata,a[10],i
printf("n=") scanf(" d",&n)
for(i=0 i&=n i++)
{ printf("a[ d]=",i) scanf(" d",&a[i])
printf("k=") scanf(" d",&k)
for(derivata=1 derivata&=k derivata++)
for(i=0 i&=n i++)
a[i]=a[i]*(n-i)
for(i=0 i&=n i++)
printf(" d ",a[i])
printf("\n")
VIP 专区(每个包含40-100个资源包)
您 可 能 感 兴 趣 的
相 关 代 码
相 关 资 源
该 用 户 还 上 传
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员C面试题及其答案三
C面试题及其答案三
// 帮忙分析一下#include&iostream.h&#include &string.h&#include &malloc.h&#include &stdio.h&#include &stdlib.h&#include &memory.h&typedef struct& AA{&&&&&&& int b1:5;&&&&&&& int b2:2;}AA;void main(){&&&&&&& AA&&&&&&& char cc[100];&&&&&&&& strcpy(cc,"abcdefghijklmnopqrstuvwxyz");&&&&&& memcpy(&aa,cc,sizeof(AA));&&&&&&& cout && aa.b1 &&&&&&&&& cout && aa.b2 &&}答案是 -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
求函数返回值,输入x=9999; int func ( x ){ &&& int countx = 0; &&& while ( x ) &&& { &&&&&&& countx ++; &&&&&&& x = x&(x-1); &&& } &&& } 结果呢?知道了这是统计9999的二进制数值中有多少个1的函数,且有5;+256+15
9×1024中含有1的个数为2;512中含有1的个数为1;256中含有1的个数为1;15中含有1的个数为4;故共有1的个数为8,结果为8。1000 - 1 = 0111,正好是原数取反。这就是原理。用这种方法来求1的个数是很效率很高的。不必去一个一个地移位。循环次数最少。
int a,b,c 请写函数实现C=a+b ,不可以改变数据类型,如将c改为long int,关键是如何处理溢出问题bool add (int a, int b,int *c){*c=a+b;return (a&0 && b&0 &&(*c&a || *c&b) || (a&0 && b&0 &&(*c&a || *c&b)));}
分析:struct bit {&& int a:3; &&& int& b:2; &&& int c:3; }; int main() { & & char *c=(char*)&s; && cout&&sizeof(bit)&&& *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
位域 :&& 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:&&&& struct 位域结构名&&&& { 位域列表 };&&& 其中位域列表的形式为: 类型说明符 位域名:位域长度&&&& 例如:&&&& struct bs&&& {&&& int a:8;&&& int b:2;&&& int c:6;&&& };&&& 位域变量的说明与结构变量说明的方式相同。 可采用先定义后说明,同时定义说明或者直接说明这三种方式。例如:&&&& struct bs&&& {&&& int a:8;&&& int b:2;&&& int c:6;&&& }&&& 说明data为bs变量,共占两个字节。其中位域a占8位,位域b占2位,位域c占6位。对于位域的定义尚有以下几点说明:&&&
1. 一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始。例如:&&&& struct bs&&& {&&& unsigned a:4&&& unsigned :0 /*空域*/&&& unsigned b:4 /*从下一单元开始存放*/&&& unsigned c:4&&& }&&& 在这个位域定义中,a占第一字节的4位,后4位填0表示不使用,b从第二字节开始,占用4位,c占用4位。&&&
2. 由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位。&&&
3. 位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的。例如:&&&& struct k&&& {&&& int a:1&&& int :2 /*该2位不能使用*/&&& int b:3&&& int c:2&&& };&&& 从以上分析可以看出,位域在本质上就是一种结构类型, 不过其成员是按二进位分配的。&&&
二、位域的使用位域的使用和结构成员的使用相同,其一般形式为: 位域变量名•位域名 位域允许用各种格式输出。&&& main(){&&& struct bs&&& {&&& unsigned a:1;&&& unsigned b:3;&&& unsigned c:4;&&& } bit,*&&& bit.a=1;&&& bit.b=7;&&& bit.c=15;&&& pri
改错:#include &stdio.h&
int main(void) {
&&& int **p;&&& int arr[100];
&&& return 0;}解答:搞错了,是指针类型不同,int **p; //二级指针& //得到的是指向第一维为100的数组的指针#include &stdio.h&int main(void) {int **p, *q;int arr[100];q =p = &q;return 0;}
下面这个程序执行后会有什么错误或者效果:&#define MAX 255&int main(){&& unsigned char A[MAX],i;//i被定义为unsigned char&& for (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了..无限循环下去.
struct name1{&& char&&&&& int&&}
struct name2{&&&&&&}
sizeof(struct name1)=8,sizeof(struct name2)=12在第二个结构中,为保证num按四个字节对齐,char后必须留出3字节的空间;同时为保证整个结构的自然对齐(这里是4字节对齐),在x后还要补齐2个字节,这样就是12字节。
intel:A.c 和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(栈还是堆或者其他的)?static的全局变量,表明这个变量仅在本模块中有意义,不会影响其他模块。他们都放在数据区,但是编译器对他们的命名是不同的。如果要使变量在其他模块也有意义的话,需要使用extern关键字。
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字节。
第二个最后会对照是不是结构体内最大数据的倍数,不是的话,会补成是最大数据的倍数
发表评论:
TA的最新馆藏阻断页温馨提示:该网站暂时无法进行访问原因一:根据,您尚未进行备案; 原因二:根据,您当前的接入商不是我公司; 原因三:您的网站可能存在不适宜传播的信息,请联系网站管理员。
本页面为默认提示页面,如网站存在以上问题请及时进行处理。谢谢合作!
重要提示:接入网站3天内必须到公安网安部官网进行信息备案,否则一概取消白名单。
网安网址:}

我要回帖

更多关于 include stdio 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信