各种语言之最集 2010 各种语言之最集 感 言经典语录: 经典语录 一个人的成就,不是以金钱衡量,而是一生中,你善待过多少人,有多少人怀念你。 一个人的成就,不是以金钱衡量,而是一生中,你善待过多少人,有多少人怀念你。生意 人的账簿,记录收入与支出,两数相减,便是盈利。人生的账簿,记录爱与被爱, 人的账簿,记录收入与支出,两数相减,便是盈利。人生的账簿,记录爱与被爱,两数相 就是成就。 加,就是成就。 经典语录: 经典语录 从现在开始,聪明一点,不要问别人想不想你,爱不爱你? 从现在开始,聪明一点,不要问别人想不想你,爱不爱你?若是要想你或者爱你自然会对 你说,但是从你的嘴里说出来,别人会很骄傲和不在乎你。再也不要太在意一些人 太在意一些人, 你说,但是从你的嘴里说出来,别人会很骄傲和不在乎你。再也不要太在意一些人,太在 乎一些事,顺其自然以最佳心态面对,因为这个世界就是这样:往往在最在乎的事物面前, 乎一些事,顺其自然以最佳心态面对,因为这个世界就是这样:往往在最在乎的事物面前, 我们最没有价值。 我们最没有价值。 经典语录: 经典语录 做人十心机】 【做人十心机】⒈做人不能太单纯 适度伪装自己 ⒉凡事留余地 要留退路 ⒊话不说绝 口 懂方圆之道:没事不惹事, 无遮拦难成大事 ⒋成熟而不世故 ⒌心态好 想得开活得不累 ⒍懂方圆之道:没事不惹事, 不可少二礼:礼仪与礼物 偶尔"势利眼 势利眼" 来事不怕事 ⒎不可少二礼 礼仪与礼物 ⒏人在江湖飘 防挨朋友刀 ⒐偶尔 势利眼 寻可 放下面子来做人。 靠伙伴 ⒑放下面子来做人。 经典语录: 经典语录 人生旅途中,总有人不断地走来,有人不断地离去。当新的名字变成老的名字, 人生旅途中,总有人不断地走来,有人不断地离去。当新的名字变成老的名字,当老的名 字渐渐模糊,又是一个故事的结束和另一个故事的开始。在不断的相遇和错开中, 字渐渐模糊,又是一个故事的结束和另一个故事的开始。在不断的相遇和错开中,终于明 身边的人只能陪着自己走过或近或远的一程,而不能伴自己一生; 白:身边的人只能陪着自己走过或近或远的一程,而不能伴自己一生;陪伴一生的是自己 的名字和那些或清晰或模糊的名字所带来的感动。 的名字和那些或清晰或模糊的名字所带来的感动。 【2010 年最囧新闻】1,上海一男子投河自杀,嫌河脏又爬上来了。2,武汉一对夫 年最囧新闻】 上海一男子投河自杀 嫌河脏又爬上来了。 武汉一对夫 上海一男子投河自杀,妻吵架,妻子叫来消防车说丈夫 火太大 火
太大”。 重庆一贼半夜入室行窃 重庆一贼半夜入室行窃, 妻吵架,妻子叫来消防车说丈夫“火太大 。3,重庆一贼半夜入室行窃,误将鞭炮 山东一司机在衣服上画一黑道代表安全带 当蜡烛点,吵醒主人。 山东一司机在衣服上画一黑道代表安全带。 沈阳一逃 当蜡烛点,吵醒主人。4,山东一司机在衣服上画一黑道代表安全带。5,沈阳一逃 犯 10 年后自首,先要半斤水饺再招供。6,河南一乞丐讨钱未果愤然报警。 年后自首,先要半斤水饺再招供。 河南一乞丐讨钱未果愤然报警。 河南一乞丐讨钱未果愤然报警 【 2010 年最给力标语 】 1、没有房子就没有媳妇。2、宜春,一座叫春的城市。 、没有房子就没有媳妇。 、宜春,一座叫春的城市。 3、办公室比办公司赚钱。4、像买白菜一样买别墅!5、安全套必备保平安!6、 、办公室比办公司赚钱。 、像买白菜一样买别墅! 、安全套必备保平安! 、 此处禁止小便,违者没收小便工具。 、洗衣液:唯有罪恶洗不掉。 、 此处禁止小便,违者没收小便工具。7、洗衣液:唯有罪恶洗不掉。8、让我们 一起上“床吧 床吧”! 、车祸猛如虎,我爸叫! 、一日行窃,终身是贼! 一起上 床吧 !9、车祸猛如虎,我爸叫!10、一日行窃,终身是贼! 容易; 容易;生活, 【 2010 年最雷语录 】 1、给点阳光就腐烂。2、生,容易;活,容易;生活, 、给点阳光就腐烂。 、 不容易。 、在哪里跌倒, 在哪里躺下。 、走得太快,灵魂有点跟不上了。 、 不容易。3、在哪里跌倒,就在哪里躺下。4、走得太快,灵魂有点跟不上了。5、 理想很丰满,现实很骨感。 、 属虚构; 是佳人。 、天哪, 理想很丰满,现实很骨感。6、纯,属虚构;乱,是佳人。7、天哪,我的衣服 又瘦了! 、脱了衣服是禽兽,穿上衣服是衣冠禽兽。 、 又瘦了!8、脱了衣服是禽兽,穿上衣服是衣冠禽兽。9、不要和地球人一般见 识。生活,就是生下来,活下去。 漫漫人生路, 【 2010 年超强悍语录 】①生活,就是生下来,活下去。②漫漫人生路,一直 在迷路。 要么忍,要么残忍。 不要为旧的悲伤浪费新的眼泪。 在迷路。③要么忍,要么残忍。④不要为旧的悲伤浪费新的眼泪。⑤青春就是 疯狂地奔跑,然后华丽地跌倒。 灵感不是曹操,说来就来。 生活像歌, 疯狂地奔跑,然后华丽地跌倒。⑥灵感不是曹操,说来就来。⑦生活像歌,时 而不靠谱,时而不着调。 青春一旦典当,就永难赎回。 而不靠谱,时而不着调。⑧青春一旦典当,就永难赎回。⑨明明是傻却偏说逆 向思维。 向思维。 据说是星云大师人生理念。 在高僧都成励志专
家。 、春天,不是季节, 据说是星云大师人生理念。现在高僧都成励志专家。1、春天,不是季节,而是 内心; 、生命,不是躯体,而是心性; 、人生,不是岁月,而是永恒; 、 内心;2、生命,不是躯体,而是心性;3、人生,不是岁月,而是永恒;4、云 不是景色,而是襟怀; 、日出,不是早晨,而是朝气; 、风雨, 水,不是景色,而是襟怀;5、日出,不是早晨,而是朝气;6、风雨,不是天 而是锻炼; 、沧桑,不是自然,而是经历; 、幸福,不是状态, 象,而是锻炼;7、沧桑,不是自然,而是经历;8、幸福,不是状态,而是感 受。 一部高档手机, 的功能是没用的。 的速度是多余的。 一部高档手机, 70%的功能是没用的。一款高档轿车, 70%的速度是多余的。 的功能是没用的 一款高档轿车, 的速度是多余的 的面积是空闲的。 的设备是摆样的。 一幢豪华别墅, 的面积是空闲的 一个科研单位, 的设备是摆样的 一幢豪华别墅, 70%的面积是空闲的。一个科研单位, 70%的设备是摆样的。 一所名牌大学, 的教授是扯淡的。 一所名牌大学, 70%的教授是扯淡的。一把美女情人, 70%的日子是替别人养 的教授是扯淡的 一把美女情人, 的日子是替别人养 着的。 着的。 【十五种长寿职业】 1.书法家 2.营养学家 3.歌唱家 4.武术教练 5.科技人员 6. 十五种长寿职业】 书法家 营养学家 歌唱家 武术教练 科技人员 和尚 7.报刊编辑 8.相声演员 9.柔道运动员 10.教授 11.服装设计师 12.古物收 报刊编辑 相声演员 柔道运动员 教授 服装设计师 古物收 植物专家。这些职业有使人长寿的共同特点: 藏家 13.魔术师 14.体操教练 15 植物专家。这些职业有使人长寿的共同特点: 魔术师 体操教练 导向乐观、富于创造、引起兴趣、用脑较多、性格柔和、幽默感强等。 导向乐观、富于创造、引起兴趣、用脑较多、性格柔和、幽默感强等。 辽宁省人力资源市场负责人说: 辽宁省人力资源市场负责人说:今年企业需求比去年增长了 26.6%,其中,销 ,其中, 售人员、技术工人、市场营销、公共关系、企业管理、 售人员、技术工人、市场营销、公共关系、企业管理、建筑工程方面人才需求 较大,工作相对好找;特别是销售和技工,需求最大,但求职者少。而会计、 较大,工作相对好找;特别是销售和技工,需求最大,但求职者少。而会计、 审计、法律、行政、后勤等一般文员,由于市场供给过剩,相对难找工作。 审计、法律、行政、后勤等一般文员,由于市场供给过剩,相对难找工作。 语言暴力不值得提倡。哪怕你的辩驳再有逻辑力量,由于使用了暴力, 语
第二篇:20xx年考试的注意了。C语言20xx考试试题集
20xx年C语言最新试题
2010试题
一 填空题
1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为( )。
2.设 int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是( )。
3.下面程序段的输出结果是( )。
int a=1234; a=a&0377; printf(“%d %o\n”,a,a);
4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是( )。
char a[3];
5.设有以下宏定义,则执行赋值语句 a=PP*20;(a为int型变量)后,a的值是( )。
#define PR 80
#define PP PR+403
6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:( )、( )和( )。
7.在C文件中,数据存在的两种代码形式是( )和( )。
8.C语言中调用( )函数打开文件,调用( )函数关闭文件,调用( )函数可实现文件的随机读写。
9.若有int a[3]={10,12,30};则a+1是( )的地址,*(a+2)=( )。
二 判断对错
1.在Turbo C中,整型数据在内存中占2个字节。( )
2.表达式1/4+2.75的值是3。( )
3.结构体类型只有一种。( )
4.函数若无返回值,则它一定无形参。( )
5.C语言只能处理文本文件和二进制文件。( )
三 选择题
1.设 int a=12; 表达式a+=a-=a*=a的值是( )。
A 12 B 144 C 0 D 132
2.以下程序的输出结果是( )。
main( )
{ int a=011;
printf(“%d\n”,++a);
}
A 12 B 11 C 10 D 9
3.以下程序的输出结果是( )。
#define ADD(x) (x)+(x)
main()
{ int a=4,b=6,c=7,d=ADD(a+b)*c;
printf(“d=%d”,d);
}
A d=70 B d=140 C d=280 D d=80
4.下面的选项中正确的赋值语句是(char a[5],*p=a;)( )。
A p=“abcd”; B a=“abcd”; C *p=“abcd”; D *a=“abcd”;
5.若k为整形,则while循环执行( )次。
k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”);
A 10 B 9 C 0 D 1
6.数组名作为实参传递给形参时,数组名被处理为( )。
A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值
7.两个指针变量不可以( )。
A. 相加 B 比较 C 相减 D 指向同一地址
8.若有以下程序段,则值为6的表达式是( )。
struct st{ int n;struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,?\0?},*p; p=&a[0];
A p++->n B p->n++ C (*p).n++ D ++p->n
9.要打开一个已存在的非空文件"file"用于修改,选择正确的语句(
A fp=fopen("file","r"); B fp=fopen("file","w");
C fp=fopen("file","r+"); D fp=fopen("file","w+");
四 写出下列程序的运行结果。(28分)
1.main( )
{ int a[6]={10,6,23,-90,0,3},i;
invert(a,0,5);
for(i=0;i<6;i++) printf(“%d,”,a[i]);
printf(“\n”);
}
invert(int *s,int i,int j)
{ int t;
if(i<j)
{ invert(s,i+1j-1);
t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;
}
。 )
}
2.f1(int a)
{ int b=0; static int c=3;
b+=1; c++;
return(a+b+c);
}
main()
{ int a=1,i;
char s1[10]=“java”,s2[10]=“basic”,s[10];
for(i=0;i<3;i++) printf("%d ",f1(a));
printf(“\n”);
if(strcmp(s1,s2)) { strcpy(s,s1); puts(s);}
printf(“%d,%s\n”,strlen(s2),strcat(s2,s1));
}
3.#define MAX 100
main()
{ int f[MAX],i,j,k=2,m=5;
for(i=0;i<=m;i++) f[i]=1; f[k-1]=2;
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++) f[i]+=f[j];
printf("%d%5d%5d\n",k,m,f[m]);
}
五 阅读下列程序,在 处填入适当内容,使程序完整。(32分)
1.求100~200间的全部素数。
(1)
main()
{ int m,k,i,n=0;
for(m=101;m<=200;m+=2)
{ if(n%10==0) printf("\n");
k=sqrt(m);
for(i= (2) ;i<=k;i++) if(m%i==0)
if(i== (4) )
{ printf("%d ",m);n++;}
}
}
2.用选择法对数组中的10个字符按由大到小排序。
void sort( (1) )
char a[ ]; int n;
{ int i,j,k;
char t;
for (i=0;i<n-1;i++)
{ (2) ;
for(j=i+1;j<n;j++)
if ( (3) ) k=j;
3) ; (
t=a[k];a[k]=a[i];a[i]=t;}
}
main( )
{ char s[10];
int i;
for(i=0;i<10;i++) scanf(“%c”,&s[i]);
(4) ;
printf(“the sorted array:\n”);
for(i=0;i<10;i++)
printf(“%c”, (5) );
printf(“\n”);
}
33.输入3×4数组,用指针方法实现将每行中的最小数与第0列元素对调。
main()
{ int a[3][4],i,j,*p=a[0];
for(i=0;i<3;i++)
for(j=0;j<4;j++) scanf(“%d”,p++);
for(p=&a[0][0];p<a[0]+12; (1) )
swap(p);
(2) ;
for(i=0;i<3;i++)
{ for(j=0;j<4;j++) printf(“%3d”,*p++);
printf(“\n”);}
}
swap(int (3) )
{ int min,i,*p2=p1,*p3;
(4) ;
for(i=0;i<4;i++)
{ if(*p2<*p3) p3=p2; (5) ;
}
min=*p1;*p1=*p3;*p3=min;
}
2010试题·2
一 填空题
1.当执行完以下语句后,变量a的值为( ),b的值为( ),c的值为( )。
a=6; b=++a; c=--a;
2.已知a=3、b=2,则表达式a*=b+8的值是( )。
3.下面程序段的输出结果是( )。
int a=125; printf(“%d\n”,a>>4);
4.a数组定义如下,a数组中可用最小下标值是( ),最大下标值是( )。
char a[3];
5.设有以下宏定义,则执行赋值语句a=ADD(4+6)*7;(a为int型变量)后,a的值是( )。
#define ADD(x) (x)+(x)
6.若有以下说明、定义和语句,则对x.b成员的另外两种引用方式是:( )和( )。
struct st
{ int a;
struct st b;
} *p,x;
p=&x;
7.在C中,文件指针变量的类型只能是( )。
8.在C中文件结束标志EOF只可用于( )文件。
9.a数组定义如下,若使数组a中存放字符串“friend” ,写出为数组a赋值的语句(
char a[10];
二 判断对错
1.在Turbo C中,实型数据在内存中占4个字节。( )
2.被main函数调用的函数只能是库函数。( )
3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。( )
4.算术运算符和赋值运算符的结合方向均由左自右。( )
5.定义在main函数后的任何函数都需在main中进行函数声明。( )
6.一个函数中只允许有一条return语句。( )
7.任何数组在使用时必须先定义。( )
8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。( )
9.在定义枚举时,枚举常量可以是标识符或数字。( )
10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。( )
三 选择题
1.若有代数式 ,则错误的C语言表达式是( )。
A a*e/c/b B a*e/b/c C a*e/b*c D a/b/c*e
。 )
2.以下程序的输出结果是( )。
main( )
{ int a=7,b=5;
printf(“%d\n”,b=b/a);
}
A 不确定值 B 5 C 1 D 0
3.以下程序的输出结果是( )。
main()
{ int k1=1,k2=2,k3=3,x=15;
if(!k1) x--;
else if(k2) if(k3) x=4;else x=3;
printf(“x=%d\n”,x);
}
A x=4 B x=15 C x=14 D x=3
4. 以下程序的输出结果是( )。
main()
{ char s1[20]=“China”,s2[20]=“for”,s[10];
if(strcmp(s1,s2)) printf(“%s\n”, strcat(s2,s1));
else printf(“%d\n”,strlen(s1));
}
A Chinafor B 5 C forChina D 3
5.C语言中函数调用的方式有( )。
A 函数调用作为语句1种 B 函数调用作为函数表达式1种
C 函数调用作为语句或函数表达式2种 D 函数调用作为语句、函数表达式或函数参数3种
6.关于return语句,下列正确的说法是( )。
A 可以在同一函数中出现多次 B 必须在每个函数中出现
C 只能在除主函数之外的函数中出现一次 D 在主函数中不能出现
7.已知职工记录描述如下,设变量w中的“生日”是“19xx年10月25日”,下列对“生日”的正确赋值方式是( )。
struct worker
{ int no; char name[20]; char sex;
struct birth{ int day; int month; int year;}a;
};
struct worker w;
A day=25; month=10; year=1993;
B w.birth.day=25; w.birth.month=10; w.birth.year=1993;
C w.day=25; w.month=10; w.year=1993;
D w.a.day=25; w.a.month=10; w.a.year=1993;
8.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是( )。
A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针
C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数
9.若有下面的变量定义,以下语句中合法的是( )。
int i,a[10],*p;
A p=a+2; B p=a[5]; C p=a[2]+2; D p=&(i+2);
10.若有以下的定义和语句,则值为12的表达式是( )。
struct wc{ int a;int *b;}*p;int x0[]={11,12},x1[]={31,32};
static struct wc x[2]={100,x0,300,x1}; p=x;
A *++p->b B ++p->a C p->b D *(p++)->b
四 写出下列程序的运行结果
1.main()
{ int number=0;
while(number++<=1) printf("*%d,",number);
printf("**%d\n",number);
}
2.#define N 7
main()
{ int i,j,a[N][N];
for(i=1;i<N;i++)
{ a[i][i]=1; a[i][1]=1; }
for(i=3;i<N;i++)
for(j=2;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];
for(j=1;j<=4;j++) printf("%2d",a[4][j]);
printf("\n");
}
3.hcf(int u,int v)
{ int a,b,c,r;
if(u>v) { c=u; u=v; v=c; }
a=u; b=v;
while((r=b%a)!=0) { b=a; a=r;}
return(a);
}
main()
{ int u,v,h,l;
u=32; v=48;
h=hcf(u,v);
printf("H.C.F=%d\t",h);
}
4.main()
{ int a[]={1,2,3,4,5,6},*p;
p=a; *(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
}
5.main()
{ int y;
fac(4,&y);
printf(“y=%d\n”,y);
}
fac(int n,int *t)
{ int s;
if((n==1)||(n==0)) *t=1;
else { fac(n-1,&s); t=n*s; }
}
五 阅读下列程序,在 处填入适当内容,使程序完整
1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。)
main()
{
int i,a,m;
for(i=1;i<1000;i++)
{
for(m=0,a=l;a<=i/2;a++)
if(!(i%a)) (1) ;
if( (2) ) printf("%4d",i);
}
}
2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#define N 10
char str[N];
main()
{
int i,flag;
for(i=0;i<10;i++)
scanf("%c",&str[i]);
sort(_(1)__);
for(i=0;i<N;i++)
printf("%c",str[i]);
printf("\n");
}
sort(str)
char str[N];
{ int i,j;
char t;
for(j=1;j<N;j++)
for(i=0;i<N-j;i++)
if(str[i]> (2) )
{ t=str[i];
______(3)______;
______(4)______;
}
}
3.3.将一个磁盘文件中的信息复制到另一个磁盘文件中。
#include "stdio.h"
main()
{ (1) *in,*out;
char ch,infile[10],outfile[10];
printf("Enter the infile name:\n");
scanf("%s",infile);
printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{ printf("Cannot open input file.\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{ printf("Cannot open output file.\n");
exit(0);
}
while(!feof(in))
fputc( (2) ,out);
(3) ;
(4) ;
}
4.4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。
#define N 10
main()
{
void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a; p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}
void maxmin(int arr[],int *pt1,int *pt2,int n)
{
int i;
*pt1=*pt2=arr[0];
for(i=1;i<n;i++)
{
if(arr[i]>*pt1) (1) ;
if(arr[i]<*pt2) (2) ;
}
}
2010试题·3
一 填空题
1.C语言表达式 5>2>7>8 的值是( )。
2.当执行完以下语句后,变量a的值为(
a=6; b=++a; c=--a; d=a++; e=a--;
,d的值为(,e的值为(。 ) ) )
3.下面程序段的输出结果是( )。
char a=111; a=a^00; printf(“%d %o\n”,a,a);
4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是( )。
char a[3];
5.设有以下宏定义,则执行赋值语句 a=PP+20;(a为int型变量)后,a的值是( )。
#define PR 8
#define PP PR*40
6.定义结构体类型时,应使用关键字( ),定义枚举类型时,应使用关键字(
7.C文件可以分为两种类型,它们是( )文件和( )文件。
8.若有char a[3]=“as”;则*a=( ),*(a+2)=( )。
二 判断对错
1.。( )
2.表达式1/4+2.75的值是3。( )
3.结构体类型只有一种。( )
4.函数若无返回值,则它一定无形参。( )
5.C语言只能处理文本文件和二进制文件。( )
二 判断对错
1.在Turbo C中,实型数据在内存中占4个字节。( )
2.被main函数调用的函数只能是库函数。( )
3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。( )
4.算术运算符和赋值运算符的结合方向均由左自右。( )
5.定义在main函数后的任何函数都需在main中进行函数声明。( )
。 )
6.一个函数中只允许有一条return语句。( )
7.任何数组在使用时必须先定义。( )
8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。( )
9.在定义枚举时,枚举常量可以是标识符或数字。( )
10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。( )
三 选择题
1.a,b为整形变量,二者均不为0,以下关系表达式中恒成立的是(
(A) a*b/a*b==1 (B) a/b*b/a==1
(C) a/b*b+a%b==a (D) a/b*b==a
2.C语言源程序的基本单位是( )。
(A) 过程 (B) 函数 (C) 子程序 (D) 标识符
3.以下函数调用语句中含有( )个实参。
func((e1,e2),(e3,e4,e5));
(A) 2 (B) 3 (C) 5 (D) 语法错误
4.以下的 for 循环( )。
for(x=0,y=0;(y!=123)&&(x<4);x++) ;
(A) 执行 3 次 (B) 执行 4 次
(C) 循环次数不定 (D) 是无限循环
5.以下程序的输出结果为( )。
#define N 2
#define M N+2
#define CUBE(x) (x*x*x)
。 )
#include "stdio.h"
main( )
{ int i=M;
i=CUBE(i);
printf("%d\n",i);
}
(A) 17 (B) 64 (C) 125 (D) 53
6.以下程序的输出结果为( )。
main( )
{ int i=010,j=10,*pi,*pj;
pi=&i; pj=&j;
printf("%d.%d\n",*pi,*pj);
}
(A) 10,10 (B) 8,10 (C) 010,10 (D) 8,8
7.在下列程序段中,枚举变量 c1,c2 的值依次是( ),( )。
enum color { red,yellow,blue=4,green,white} c1,c2;
c1=yellow; c2=white;
printf("%d,%d\n",c1,c2);
(A) 1 (B) 3 (C) 5 (D) 6
8.要打开一个已存在的非空文件"file"用于修改,选择正确的语句(
(A) fp=fopen("file","r"); (B) fp=fopen("file","w");
(C) fp=fopen("file","r+"); (D) fp=fopen("file","w+");
。 )
9.以下程序的输出结果是( )。
main()
{ char s1[20]=“abc”,s2[20]=“123”;
if(strcmp(s1,s2)>0) printf(“%s\n”,s1));
else printf(“%s\n”,s2);
}
(A) abc (B) 123 (C) abc123 (D) 123abc
10.已知职工记录描述如下,设变量w中的“生日”是“19xx年10月25日”,下列对“生日”的正确赋值方式是( )。
struct worker
{ int no; char name[20]; char sex;
struct { int day; int month; int year;}birth;
};
struct worker w;
(A) day=25; month=10; year=1993;
(B) w.birth.day=25; w.birth.month=10; w.birth.year=1993;
(C) w.day=25; w.month=10; w.year=1993;
(D) birth.day=25; birth.month=10; birth.year=1993;
四 写出下列程序的运行结果
1.main()
{ int i,j;
i=16; j=(i++)+i; printf("%d\n",j);
i=15; printf("%d\t%d\n",++i,i);
}
2.#include "stdio.h"
main()
{ int i;
for(i=1;i+1;i++)
{ if(i>4)
{ printf("%d\n",i++);
break;
}
printf("%d\n",i++);
}
}
3.#include "stdio.h"
main()
{ int i,j,a[]={0,2,8,4,5};
printf("\n");
for(i=1;i<=5;i++)
{ j=5-i;
printf("%2d",a[j]);
}
}
4.#include "stdio.h"
main()
{ char string1[]={"ABCDEFGHIJ"},string2[10];
s(string1,string2,5);
printf("%s\n",string2);
}
s(p,q,m)
char *p.*q;
int m;
{ int n=0;
while(n<m-1)
{ n++;
p++;
}
while(*p!='\0')
{ *q=*p;
p++;
q++;
}
*q='\0';
}
5.main()
{ int y;
fac(5,&y);
printf(“y=%d\n”,y);
}
fac(int n,int *t)
{ int s;
if((n==1)||(n==0)) *t=2;
else { fac(n-1,&s); t=n*s; }
}
五 阅读下列程序,在 处填入适当内容,使程序完整
1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。)
main()
{
int i,a,m;
for(i=1;i<1000;i++)
{
for(m=0,a=l;a<=i/2;a++)
if(!(i%a)) (1) ;
if( (2) ) printf("%4d",i);
}
}
2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#define N 10
char str[N];
main()
{
int i,flag;
for(i=0;i<10;i++)
scanf("%c",&str[i]);
sort(_(1)__);
for(i=0;i<N;i++)
printf("%c",str[i]);
printf("\n");
}
sort(str)
char str[N];
{ int i,j;
char t;
for(j=1;j<N;j++)
for(i=0;i<N-j;i++)
if(str[i]> (2) )
{ t=str[i];
______(3)______;
______(4)______;
}
}
3.将一个磁盘文件中的信息复制到另一个磁盘文件中。
#include "stdio.h"
main()
{ (1) *in,*out;
char ch,infile[10],outfile[10];
printf("Enter the infile name:\n");
scanf("%s",infile);
printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{ printf("Cannot open input file.\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{ printf("Cannot open output file.\n");
exit(0);
}
while(!feof(in))
fputc( (2) ,out);
(3) ;
(4) ;
}
4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。
#define N 10
main()
{
void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a; p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}
void maxmin(int arr[],int *pt1,int *pt2,int n)
{
int i;
*pt1=*pt2=arr[0];
for(i=1;i<n;i++)
{
if(arr[i]>*pt1) (1) ;
if(arr[i]<*pt2) (2) ;
}
}
2010试题·4
一 选择题
1.设a为整型变量,初值为12,执行完语句 a+=a-=a*a后,a的值是( )。
A 552 B 144 C 264 D -264
2.下列标识符中,不能作为合法的C用户定义标识符的是( )。
A a3_b3 B void C _123 D IF
3.下列整数值中,不正确的八进制或十六进制数值常量是( )。
A 0xcd B -017 C -ox123 D 0xfdc
4.若给定条件表达式(M)?(a++):(a--),则其中表达式M和( )等价。
A M==0 B M=1 C M!=1 D M!=0
5.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为(
A 只能是逻辑表达式 B只能是关系表达式
C 只能是逻辑表达式或关系表达式 D可以是任意表达式
6.以下程序的输出结果为( )。
main( )
{ char c;
int i;
for(i=65;i<68;i++)
{ c=i+32;
switch(c)
{ case ?a?:printf("%c,",c);break;
case ?b?:case ?e?:printf("ok,");
。 )
default: printf("end");
}
}
}
A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok
7.数组名作为实参数传递给函数时,数组名被处理为( )。
A 该数组的长度 B 该数组的元素个数
C 该数组的首地址 D 该数组中各元素的值
8.关于return语句,下列正确的说法是( )。
A 可以在同一函数中出现多次 B 在主函数中不能出现
C 必须在每个函数中出现 D 只能在除主函数之外的函数中出现一次
9.以下程序的输出结果为( )。
#define A 3
#define B(a) (A+1)*a
main()
{ int x;
x=3*A+B(7);
printf("x=%d\n",x);
}
A x=93 B x=37 C x=60 D x=90
10.设有以下定义,则以下对变量w的赋值( )是错误的。
enum week{sun,mon=4,tue,wed,thu,fri,sat}w;
A w=sun; B w=(enum week)4; C w=san; D w=(enum week)9;
11.以下定义结构体类型st1,其中正确的是( )。
A typedef struct student
{ int num; int age; }STD;
STD st1;
B struct st1{int num,age;}s;
C struct { int num; float age;}st1;
D struct st1 {int num; int age; }
12.若有下面的变量定义,以下语句中合法的是( )。
int i,a[10],*p;
A p=a+2; B p=a[5]; C p=a[2]+2; D p=&(i+2);
13.若有以下定义和语句,则值为12的表达式是( )。
struct wc{ int a;int *b;}*p;
int x0[]={11,12},x1[]={31,32};
static struct wc x[2]={100,x0,300,x1};
p=x;
A *++p->b B ++p->a C p->b D *(p++)->b
14.要打开一个已存在的非空文件“file”用于修改,选择正确的语句(
A fp=fopen("file","r"); B fp=fopen("file","w");
C fp=fopen("file","r+"); D fp=fopen("file","w+");
二 判断对错,对的划“√”,错的划“×”
1.在Turbo C中,实型数据在内存中占4个字节。( )
。 )
2.若有形参定义:int a[10];则a++是合法的表达式。( )
3.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。( )
4.函数的递归调用不过是一个函数直接地调用它自身。( )
5.定义在main函数后的任何函数都需在main中进行函数声明。( )
6.若有定义:int a;则scanf(“%d",a);可以给变量a赋值。( )
7.任何数组在使用前必须先定义。( )
8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。( )
9.共用体变量的各个成员所占内存单元的地址相同。( )
10.在使用缓冲文件系统时,与文件输入和输出相关的数据都先送到缓冲区中。(
三 写出下列程序的运行结果
1.main( )
{ char c1=?A?,c2=?\144?,c3=?\x44?,c=0xf5,x=13,a;
int i=0122,j=0xa4;
printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3);
printf(“%d,%d\n”,i,j);
i=-34;
j=20;
printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j));
printf(“c=%d\n”,c|x);
a=c^x<<2;
printf(“a=%d\n”,a);
}
)
2.main()
{
int x,y=1,z=10;
if(y!=0) x=5;
printf(“x=%d\t”,x);
x=1;
if(z<0)
if(y>0) x=3;
else x=5;
printf(“x=%d\n”,x);
if(z=y<0) x=3;
else if(y==0) x=5;
else x=7;
printf(“x=%d\t”,x);
printf(“z=%d\n”,z);
}
3.main( )
{ char s[20]=“I like it.”,t[20]=“Are you?”,c[20];
int i=0;
while(s[++i]!=?\0?)
t[i]=s[i];
t[i]=0;
printf(“string s:%s\n”,s);
printf(“string t:%s\n”,t);
}
4.int i=5;
main( )
{ int i=3;
{ int i=10;
i++;
printf(“%d\n”,i);
}
f1( );
i+=1;
printf(“%d\n”,i);
}
int f1( )
{ i=i+1;
return(i);
}
5.main()
{ int i=10,a[]={10,20,30,15},*p1;
char *b=”Learning”,**p2=&b;
p1=&i;
printf(“%4d”,*p1+20);
for(p1=a;p1<a+4;p1+=2)
printf(“%4d”,*p1);
printf(“\n%c\t%s\n”,*(b+4),*p2);
}
四 阅读下列程序,在 处填入适当内容,使程序完整
1.用冒泡法对任意10个整数排序。
main( )
{ int a[11],i,j,t;
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1; (1) ;i++)
for(j=1; (2) ;j++)
if(a[j+1]>a[j])
{ t=a[j]; (3) ; (4) ;}
printf("The sorted numbers:\n");
for(i=1;i<11;i++)
printf("%4d",a[i]);
printf(“\n”);
}
2.求100~200间的素数。
(5)
main( )
{ int m,flag;
for(m=101;m<=200;m+=2)
{ flag=prime(m);
if( (6) )
printf(“%4d”,m);
}
}
prime( (7) )
{
int i,k,flag;
k=sqrt(a);
for(i=2;i<=k;i++)
if(a%i==0)
(8) ;
if(i==k+1) flag=1;
else flag=0;
}