(11)設(shè)二進(jìn)制數(shù)A是00101101,若想通過異或運(yùn)算A^B使A的高4位取反,低4位不變,則二進(jìn)制數(shù)B應(yīng)是
【12】 。
解析: 按位異成運(yùn)算的一個(gè)重要應(yīng)用是讓某個(gè)整型變量的二進(jìn)位取反,0變成1,而1變成0。這只要設(shè)計(jì)這樣一個(gè)位串信息,讓要變反的位為1,不要改變的位為0,用這個(gè)位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。
(12)若已知a=10,b=20,則表達(dá)式!a解析: 計(jì)算表達(dá)式!a
(13)設(shè)i,j,k均為int型變量,則執(zhí)行完下面的for語句后,k的值為【14】 。
for(i=0, j=10; i<=j; i++, j--)k=i+j;
解析: 該for語句以i為0,j為10初始化,循環(huán)條件是i<=j,每次循環(huán)后i增1、j減1,循環(huán)體是將i與j的和賦給k。這樣變量k將保存的是最后一次賦給它的值。一次循環(huán)后i為1、j為9,二次循環(huán)后i為2、j為8,……,五次循環(huán)后i為5、j為5,繼續(xù)第六次循環(huán),將i與j的和10存于k后,i為6、j為4,結(jié)束循環(huán)。所以循環(huán)執(zhí)行后k為10。
(14)下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大值的和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/P>
#include
#include
void fun(int a[],int n, int *max, int *d)
{ int i;
*max=a[0];
*d=0;
for(i=0;【15】;i++)
if(*max<【16】)
{*max=a[i];*d=i;}
}
main()
{ int i, x[20], max, index, n=10;
randomize();
for(i=0;i{
x[i]=rand()P; printf("M",x[i]);
}
printf("\n");
fun(x,n,&max,&index);
printf("Max=],Index=M\n",max,index);
}
解析: 該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它所指向的變量時(shí)要對它進(jìn)行指針運(yùn)算,也即*號運(yùn)算。
(15)以下程序的輸出結(jié)果是【17】。
void fun()
{ static int a=0;
a+=2; printf("%d",a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
解析: 本題考查靜態(tài)局部變量的使用。用關(guān)鍵字static聲明的局部變量為"靜態(tài)局部變量",其值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,即其占用的存儲單元不釋放,在下一次該函數(shù)調(diào)用時(shí),該變量已有值,就是上一次函數(shù)調(diào)用結(jié)束時(shí)的值。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |