c语言复习1计算机二级.docx
《c语言复习1计算机二级.docx》由会员分享,可在线阅读,更多相关《c语言复习1计算机二级.docx(11页珍藏版)》请在冰豆网上搜索。
![c语言复习1计算机二级.docx](https://file1.bdocx.com/fileroot1/2023-3/31/37bd0a66-7e0a-406e-869f-37f5e1699803/37bd0a66-7e0a-406e-869f-37f5e16998031.gif)
c语言复习1计算机二级
1.下面关于C语言的叙述中,正确的是()。
(A)每行只能写一条语句
(B)程序中必须包含有输入语句
(C)main函数必须位于文件的开头
(D)每条语句最后必须有一个分号
2.C语言的函数体由()括起来。
(A)()(B){}(C)[](D)/**/
3.下列不属于C语言关键字的是()。
(A)continue(B)integer(C)static(D)signed
4.下面关于C语言变量的叙述中,错误的是()。
(A)可以用const关键字定义变量
(B)在C程序中,SUM和sum是不同的变量
(C)变量名必须由字母或下划线开头
(D)变量的类型确定了变量的取值范围
5.若有定义:
inta=2;则正确的赋值表达式是()。
(A)a-=(a*3)(B)a=double(-a)(C)a*3(D)a*4=3
6.若已定义:
inta=2,b=2;则表达式(a+(b++),b)的值是()。
(A)2(B)3(C)4(D)6
7.若有定义:
inti=7,j=8;则表达式i>=j||i(A)1(B)变量i的值(C)0(D)变量j的值
8.以下程序段的运行结果是()。
inta=1;
printf("%d,%d,%d\n",a,++a,a++);
(A)3,3,1(B)1,2,2(C)1,2,3(D)3,2,1
9.若有定义:
inta=20,b=28,c;则执行语句c=(a^b)<<2;后c的值为()。
(A)2(B)5(C)32(D)92
10.以下程序的运行结果是()。
voidmain()
{intn='e';
switch(n--)
{default:
printf("error");
case'a':
case'b':
printf("good");break;
case'c':
printf("pass");
case'd':
printf("warn");
}
}
(A)error(B)good(C)errorgood(D)warn
11.以下程序的运行结果是()。
voidmain()
{intn=5;
if(n++>=6)
printf("%d\n",n);
else
printf("%d\n",++n);
}
(A)4(B)5(C)6(D)7
12.以下的if语句中,x的值一定被重新赋值的是()。
(A)if(x==y)x+=y;
(B)if(x>y&&x!
=y);
x+=y;
(C)if(x!
=y)
scanf("%d",&x);
else
scanf("%d",&y);
(D)if(x{x++;y++;}
13.若有定义inta[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为()。
(A)3(B)4(C)5(D)9
14.设有以下变量定义:
charstr1[]="string",str2[8],*str3,*str4="string";
()是正确的。
(A)strcpy(str1,"China");
(B)str2="China";
(C)strcpy(*str3,"China");
(D)strcpy(str4[0],"China");
15.以下程序段运行后屏幕输出为()。
charstr[]="ab\\cd";
printf("%d",strlen(str));
(A)4(B)5(C)6(D)7
16.设有如下定义语句:
unionu_type
{inti;
doublex;
floatf;
};
structstr_type
{charstr[100];
unionu_typeu[2];
};
则语句“printf("%d",sizeof(structstr_type));”的输出结果是()。
(A)100(B)116(C)120(D)200
17.若有定义:
inta[3][3];则表达式&a[2][1]-a的值为()。
(A)7(B)8(C)6(D)9
18.下面程序的输出结果为()。
#include
voidmain()
{
enumWeekday{sun=7,mon=1,tue,wed,thu,fri,sat};
enumWeekdayday=sat;
printf("%d\n",day);
}
(A)7(B)6(C)5(D)4
19.对下面程序正确的描述是()。
#include
#include
voidmain()
{
FILE*in,*out;
in=fopen("infile.txt","r")
out=fopen("outfile.txt","w"))==NULL)
while(!
feof(in))
fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
(A)程序实现在屏幕上显示磁盘文件infile.txt的内容
(B)程序实现将文件infile.txt和outfile.txt的内容合二为一
(C)程序实现将磁盘文件infile.txt复制到磁盘文件outfile.txt
(D)程序实现将两个磁盘文件合并并在屏幕上输出
20.下面程序运行后的结果是()。
#include
main()
{FILE*fp;inti=10,j=20,k,n;
fp=fopen("d_f.dat","w");
fprintf(fp,"%d\n",i);
fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d_f.dat","r");
fscanf(fp,"%d%d",&k,&n);
printf("%d%d\n",k,n);
fclose(fp);
}
(A)1020(B)1030(C)2030(D)2010
21.下面语句错误的是()。
(A)int*p;*p=20;
(B)char*s="abcdef";printf("%s\n",s);
(C)char*str="abcdef";str++;
(D)char*str;str="abcdef";
22.若有以下程序段,则叙述正确的是()。
chars[]="computer";
char*p;
p=s;
(A)s和p完全相同
(B)数组s的长度和p所指向的字符串长度相等
(C)*p与s[0]相等
(D)数组s中的内容和指针变量p中的内容相等
23.下面程序的运行结果是()。
#defineN10
#defineK(x)x*x
#defineT(x)(x*x)
main()
{inta,b;
a=9%K(N);9%10*10
b=9%T(N);9%(10*10)
printf("%d,%d\n",a,b);
}
(A)9,9(B)9,90(C)90,9(D)90,90
24.对于整型变量a,赋值语句a=(a%3==0?
1:
0);与()语句不等价。
(A)if(a%3==0)a=1;elsea=0;(B)if(a%3!
=0)a=0;elsea=1;
(C)if(a%3)a=0;elsea=1;(D)if(a%3)a=1;elsea=0;
25.若已定义inta=3,b=2,c=1;则语句++a||++b&&++c;运行后b的值为()。
(注意这里是不完全运算)
(A)0(B)3(C)1(D)2
1.
修改下面程序,其功能是求解百马百担问题.:
有100匹马,驮100担货,大马驮3担,中马驼2担,两匹小马驮1担,问大、中、小马数可分别多少?
有多少种解决方案?
#include
#include
/**/voidfun()/**/
{
intlarge,middle,small,n=0;
clrscr();
for(large=0;large<=33;large++)
for(middle=0;middle<=50;middle++)
{
small=2*(100-3*large-2*middle);
/**/if(large+middle+small=100)/**/
{
n++;
printf("%d-->large:
%d,middle:
%d,small:
%d\n",n,large,middle,small);
}
}
returnn;
}
voidmain()
{
intnum;
num=fun();
printf("\nThereare%dsolutions.\n",num);
getch();
}
2.修改下列程序,其功能是交换两个变量的值。
/**/voidswap(intp1,intp2)/**/
{
inttemp;
temp=*p1;
/**/p1=p2;/**/
*p2=temp;
}
voidmain()
{
inta,b;
/**/scanf("%d%d",a,b);/**/
swap(&a,&b);
printf("\nResult:
a=%db=%d\n",a,b);
}
3.修改下列程序,实现计算1至100之间的奇数之和、偶数之和。
voidmain()
{
intb,i;
/**/inta=c=0;/**/
/**/for(i=0,i<=100,i+=2)/**/
{
a+=i;
b=i+1;
c+=b;
}
printf("totalofevennumbers:
%d\n",a);
printf("totalofoddnumbers:
%d\n",c-101);
}
4.修改程序,使其实现从键盘依次输入M个整数,输出其中所有的偶数。
如输入:
2362384526
输出:
623836
#include
#include
/**/#includeM5/**/
main()
{
inta[M],i;
printf("Pleaseinput5numbers:
\n");
for(i=0;i/**/scanf("%d",a[i]);/**/
printf("Evennumbers:
\n");
for(i=0;i/**/if(a[i]/2==0)/**/
printf("%d",a[i]);
printf("\n");
getch();
}
5.修改程序,使其将输入字符串中’0’~’8’的数字字符变为比它大1的数字字符,将’9’变为’0’。
如输入:
ab12cD56EF89GH4
输出:
ab23cD67EF90GH5
#include
#include
main()
{
charstr1[128],str2[128];
inti,len;
gets(str1);
len=strlen(str1);
/**/for(i=0;i>len;i++)/**/
{
/**/if(str1[i]>='0'||str1[i]<='8')/**/
str2[i]=str1[i]+1;
elseif(str1[i]=='9')
str2[i]='0';
else
str2[i]=str1[i];
}
/**/str2[i]='\n';/**/
puts(str2);
getch();
}
6.修改程序,使其实现从键盘输入一串字符,统计其英文字母、数字及其它字符的个数。
#include
#include
voidmain()
{
charc;
intletter,number,other;
/**/letter==number==other==0;/**/
printf("Pleaseinputstring:
");
while((c=getchar())!
='\n')
{
/**/if(c>='a'&&c<='z')/**/
letter++;
/**/elseif(c>=0&&c<=9)/**/
number++;
else
other++;
}
printf("letter=%d,number=%d,other=%d\n",letter,number,other);
getch();
}