计算机类三级PC技术

计算机与网络技术类_计算机编程基础

300 题含答案PC技术
共 300 题返回本类
1单选题1 / 300
C语言源程序中主函数名是(  )
查看答案
C. main
2单选题2 / 300
下列程序的运行结果是()
#include<stdio.h>main()
{ int i,j,n=0;
for(i=0;
i<5;
i++)
{ j=i%2;
do
{ n++;
}
while(j--);
}
printf("%d,%d,%d",i,j,n);
}
查看答案
B. 5,-1,7
3单选题3 / 300
下列程序运行结果为()
#include <stdio.h>main()
{ int i,j,k;
for(i=100,k=0;
k<3;
i--)
{
for(j=2;
j<i;
j++) if(i%j==0) break;
if(j>=i)
{ printf("%d\t", i) ;
k++;
}
}
}
查看答案
A. 97 89 83
4单选题4 / 300
此程序的主要功能是求(  )
for( n=100;
n<1000;
n++ )
{ hun = n / 100;
ten = (n-hun*100) / 10;
ind = n % 10;
if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind) printf("%d ", n);
}
查看答案
D. 水仙花数
5单选题5 / 300
由键盘输入一个待查的整数n,若n存在,则输出它在数组中的第一次出现的位置,否则给出没找到信息。则_____应填写的内容是()
#include <stdio.h>
#define N 10void main()
{  int i,n;
int a[10]=
{25,2,67,34,65,86,56,78,24,34}
;
scanf("%d",&n);
i=0;
while(a[i]!=n && ___________) i= i+1 ;
if ( i==10 ) printf("%d not found!",n);
else printf("%d in position %d\n",n,i);
}
查看答案
B. i<10
6单选题6 / 300
现有100元人民币换成5元,1元,0.5元,但要求100元换以上的零钱共100张,且要求每种不少于1张,主要程序段中横线中应该填(  )
for(i=1;
i<=20;
i++)
for(j=1;
j<=100;
j++)
{ k=100-i-j;
if(_________) printf("%d,%d,%d\n",i,j,k);
}
查看答案
C. 5*i+j+k*0.5==100
10单选题10 / 300
下列C语言中引用头文件的命令行正确的是
查看答案
D. #include "stdio.h"
11单选题11 / 300
对一维整型数组a的正确定义是(  )
查看答案
D. #define SIZE 10int a[SIZE];
13单选题13 / 300

#include<stdio.h> main()
{  char c1='B',c2='h'; switch(c1)
{ case 'A':c2++; case 'B':switch(c2)
{ case 'a':printf(“%”); default:printf(“!”);
case 99:printf(“%d”,--c2); }
case 'C':switch(c2)
{ case 'g':printf(“*”); case 'h':printf(“?”); }
break; default: printf(“&”); }
}
查看答案
C. !103*?
14单选题14 / 300
main()
{ char ch='A';
int k=0;
do
{ switch(ch++)
{ case 'A':k++;
break;
case 'B':k++;
case 'C':k++;
continue;
case 'D':k++;
}
}
while(k<3);
printf("k=%d,ch=%c\n",k,ch);
}
运行结果是()。
查看答案
A. k=3,ch=C
15单选题15 / 300
下列4段程序,哪个输出的结果与其他3段代码不一样
查看答案
B. s=0;
i=1;
while(i++
16单选题16 / 300
下面程序运行结果是
#include <stdio.h>
int main()
{ int i=0,a[]=
{1,2,3,4,5}
;
do
{ a[i]+=10;
}
while(a[++i]>2);
for(i=0;
i<5;
i++) printf("%3d",a[i]);
}
查看答案
A. 11 2 3 4 5
17单选题17 / 300
以下程序运行后输出的结果是
#include <stdio.h>
int main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d",a);
}
查看答案
A. 3
19单选题19 / 300
数组定义为 int a[3][2]=
{1,2,3,4,5,6}
,值为6的数组元素是(  )
查看答案
B. a[2][1]
20单选题20 / 300
下列程序的运行结果是:
#include <stdio.h>
int main()
{ int i,a[10]=
{1,2,3,4,5,6,7,8,9,10}
;
for(i=0;
i<10;
i++) if(a[i]%2) printf("%3d",a[i]);
return 0;
}
查看答案
A. 1 3 5 7 9
21单选题21 / 300
有这样一段程序:int a=2,b=3,t=0;
if(a>b) t=a;
a=b;
b=t;
程序运行后a,b的值分别为多少
查看答案
D. 3 0
23单选题23 / 300
下列程序的运行结果是()
#include<stdio.h>main()
{  int i,j;i=1; do
{
for(j=1;j<4-i;j++) printf(“ ”);
for(j=3-i;j<5;j++) printf(“*”); printf(“\n”); i++; }
while(i<=3); }
查看答案
A. *** *********
25单选题25 / 300
C语言程序从 ( ) 开始执行
查看答案
A. 程序中的main函数
26单选题26 / 300
从循环体内某一层跳出,继续执行循环外的语句是:( )。
查看答案
A. break语句
27单选题27 / 300
下列程序的运行结果是()
#include<stdio.h>main()
{  int i,j,k=6;
for(i=1;i<=4;i++)
{ k++;
for(j=0;j<3;j++) k++; k++; }
printf(“%d”,k); }
查看答案
D. 26
28单选题28 / 300
输入一个实数,对其进行分半,一直到小于0.001为止,输出分半的次数
#include <stdio.h>main()
{ int i=0;
float n;
scanf("%f",&n);
while(_________)
{ n=n/2;
i++;
}
printf("%d",i);
}
查看答案
A. n>=0.001
29单选题29 / 300
以下程序的运行结果是(  )
#include<stdio.h> main()
{  int a; if(a=6) printf(“%d”,a); else if(a>6) printf(“%d”,a+2); else printf(“%d”,a+3); }
查看答案
B. 6
30单选题30 / 300
下面程序的运行结果是( )。main()
{ int i,j,a=0;
for(i=0;
i<2;
i++)
{
for(j=0;
j<4;
j++)
{ if( j%2) break; a++;
}
a++;
}
printf(“%d\n”,a);
}
查看答案
A. 4
31单选题31 / 300
以下能对数组a进行正确初始化的语句是
查看答案
D. int a[ ]=
{0}
;
36单选题36 / 300
a数组中是一组升序的数,现由键盘输入一个待查的整数x,用二分法查找,若x存在输出其所在的位置,否则给出没找到信息。请将程序填充完整。
#include <stdio.h>
#define N 10void main()
{  int i,x,low,high,mid;
int a[N]=
{25,28,37,44,65,76,79,83,85,92}
;
scanf("%d",&n);
low=0;
high=N-1;
scanf("%d",&x);
while (low<=high)
{  mid=(low+high)/2;
if(x<a[mid]) high=mid-1;
if(x>a[mid]) low=mid+1;
if (x==a[mid]) _________;
}
if(low<=high) printf("found,%d in position %d\n",x,mid);
else printf("%d no found\n",x);
}
查看答案
C. break
37单选题37 / 300
下列程序运行结果为()。main()
{ int x=0,y=2,z=2;
switch(x)
{ case 0:switch(y==2)
{ case 1:printf("*");
break;
case 2:printf("%%");
break;
}
case 1:switch(z)
{ case 1:printf("$");
break;
default:printf("!");
break;
case 2:printf("*");
}
}
}
查看答案
C. **
39单选题39 / 300
设x和y均为int型变量,则执行以下的循环后,y的值为(  )。
for(y=1,x=1;
y<=50;
y++)
{ if(x>=0) break;
if(x%2==1)
{ x+=5;
continue;
}
x-=3;
}
查看答案
A. 1
40单选题40 / 300
当
#include后面的头文件用""双撇号括起来时,寻找包含文件的方式是
查看答案
C. 先在当前目录中搜索,再按系统设定的方式搜索
41单选题41 / 300
下列程序运行结果为()
#include<stdio.h>main ( )
{ char str[ ]="SSWLIA" , c;
int k;
for (k=2;
(c=str[k])!= '\0';
k++)
{ switch (c)
{ case 'I': ++k;
break ;
default : putchar(c) ;
continue ;
case 'L': putchar(c);
}
putchar('*');
}
}
查看答案
C. WL*A
42单选题42 / 300
下列程序的运行结果是()void main()
{ char b[ ]="Hello,job";
b[5]=0;
puts(b);
}
查看答案
C. Hello
43单选题43 / 300
若定义:int a=2,b=3,c=1;则执行下面程序段后的结果是(  )   if(a>b)  if(a>c)  printf(“%d”,a);  else  printf(“%d”,b);  printf(“%d”,c);
查看答案
D. 1
44单选题44 / 300
main()
{ int c=0,k;
for(k=1;
k<3;
k++) switch(k)
{ default:c+=k;
case 2:c++;
break;
case 4:c+=2;
break;
}
printf("%d\n",c);
}
查看答案
C. 3
46单选题46 / 300
C语言中要使用输入输出库函数,需要在源文件中包含的头文件是
查看答案
A. stdio.h
47单选题47 / 300
有定义:int m=4,n=5,k;则________是符合C语言语法的表达式。(  )
查看答案
C. m=(n=5)
48单选题48 / 300
有如下逗号表达式语句a=((3,4),(2,1));
下面对此语句的判断正确的是
查看答案
A. 使a的值为1
51单选题51 / 300
百马百担问题:在横线处应该填写()
for(x=0;
x<=33;
x++) //大马的数量
for(y=0;
y<=50;
y++) //中马的数量
{__________________//小马的数量 if(3*x+2*y+z/2==100) //判断是否100匹马伏100担货 printf("大马:%d 中马:%d 小马:%d\n",x,y,z);
}
查看答案
B. z=100-x-y;
53单选题53 / 300
下列程序的运行结果是()
#include<stdio.h>void main()
{  int x1,x2,x3,i;
int a[ ]=
{-6,3,0,0,5,-7,2,-8,0,3}
;
x1=x2=x3=0;
for(i=0;
i<10;
i++) if(a[i]>0) x1++;
else if(a[i]==0) x2++;
else x3++;
printf("%d\t%d\t%d\t",x1,x2,x3);
}
查看答案
A. 4 3 3
54单选题54 / 300
以下程序的运行结果是(  )
#include <stdio.h> main()
{  int m=-1,n=1,t=-1; if(t==-1) t=-t; else m=n; m=t; printf(“%d”,m.); }
查看答案
A. 1
55单选题55 / 300
以下程序的运行结果是(  )
#include<stdio.h> main()
{  int x=5; if(x=4) printf(“T”); else printf(“F”); }
查看答案
A. T
56单选题56 / 300
扩展名为.exe的文件称为C语言的(  )
查看答案
D. 可执行程序
57单选题57 / 300
计算a,b之和的平方的C语言表达式语句是
查看答案
D. (a+b)* (a+b);
58单选题58 / 300
以下程序的运行结果是(  )
#include<stdio.h>main()
{  int a=3,b=2; int k; k=(--a==b++)?a:b+1; printf(“%d”,k); }
查看答案
C. 2
59单选题59 / 300
程序中定义char c1,c2;
执行c1='A'+4;
c2='A'+'8'-'5';
后printf("%c,%d\n",c1,c2);
输出结果是
查看答案
B. E,68
60单选题60 / 300
下列程序运行结果为()。
#include<stdio.h>main()
{  int k=1,m=0; switch(k)
{ case 1:switch(++m)
{ case 0:k++; case 1:m++; break; }
break;
case 2:k++; m++; break; case 3:k++; m++; case 4:k++; m++; }
printf(“k=%d,m=%d”,k,m);}
查看答案
C. k=1,m=2
61单选题61 / 300
若int i=10;
执行下列程序后,变量i的正确结果是( )。switch (i)
{ case 9: i+=1 ;
case 10: i+=1 ;
case 11: i+=1 ;
default : i+=1 ;
}
查看答案
D. 13
62单选题62 / 300
下列程序运行结果为()。
#include<stdio.h>main()
{  int k=1,m=0; switch(k)
{ case 1:switch(++m)
{ case 0:k++; case 1:m++;break; }
case 2:k++; m++; break; case 3:k++; m++; case 4:k++; m++; }
printf(“k=%d,m=%d”,k,m);}
查看答案
A. k=2,m=3
63单选题63 / 300
将8个两位正整数的数组中下标范围为【3,6】范围内的元素用插入法进行升序排序,并保持其他元素的顺序不变,___处应填入的内容是()
#include <stdio.h>void main()
{   int i,j,x;
int a[8]=
{34,65,24,76,87,96,43,21}
;
for(i=0;
i<8;
i++) printf("%d\t",a[i]);
printf("\n");
for(i=5;
i>=3;
i--)
{   x=a[i];
j=i+1;
while(j<7&&x>a[j])
{  a[j-1]=a[j];
j++;
}
____________;
}
printf("排序后:");
for(i=0;
i<8;
i++) printf("%d\t",a[i]);
printf("\n");
}
查看答案
A. a[j-1]=x
66单选题66 / 300
下列程序的运行结果是()
#include<stdio.h>  main()
{  int n=0,x,i;
for(x=3;x<=9;x+=2) if(x%3==0)
{ i=1; while(i<=3)
{ printf(“%d”,x); i++; }
n++; printf("\n");
}
printf(“%d”,n); }
查看答案
B. 3339992
67单选题67 / 300
下列各项中,________和表达式x/=y-4等价。
查看答案
B. x=x/(y-4)
68单选题68 / 300
下列程序的运行结果是()
#include <stdio.h>main()
{  int i,j;
for(i=3;i>=1;i--)
{
for(j=1;j<=2;j++) printf(“%d”,i+j); printf(“ ”); }
}
查看答案
A. 45 34 23
69单选题69 / 300
当
#include后面的头文件用< >(尖括号)括起来时,寻找包含文件的方式是
查看答案
B. 直接按系统设定的方式搜索
70单选题70 / 300
如果已定义int a=5;float b=9.8;以下__语句中能输出正确值是
查看答案
A. printf("%d %.1f",a,b);
71单选题71 / 300
定义:char w;
int x;
float y;
double z;
则表达式w*x+z-y的值的数据类型是
查看答案
D. double
72单选题72 / 300
以下说法中正确的是( )。
查看答案
C. C语言程序总是从main( )函数开始执行
74单选题74 / 300
下列程序的功能是统计一个字符串中的字母.数字.空格和其它字符的个数。与str[i]==' '等价的语句是()
#include<stdio.h>
#include<ctype.h>void main()
{  char str[81];
int n[4]=
{0}
;
int i,k;
gets(str);
for(i=0;
str[i];
i++) if(isalpha(str[i])) n[0]++;
else if(isdigit(str[i])) n[1]++;
else if(str[i]==' ') n[2]++;
else n[3]++;
for(k=0;
k<4;
k++) printf("%4d",n[k]);
}
查看答案
B. str[i]==32
75单选题75 / 300
下列程序的运行结果是
#include <stdio.h>
int main()
{ int i,j,a[][3]=
{1,2,3,4,5,6,7,8,9}
,max[3];
for(i=0;
i<3;
i++)
{ max[i]=a[i][0];
for(j=0;
j<3;
j++) if(max[i]<a[i][j]) max[i]=a[i][j];
printf("%3d",max[i]);
}
}
查看答案
B. 3 6 9
76单选题76 / 300
以下程序的运行结果是
#include <stdio.h>
int main()
{ int i=0,s=0;
while(i<5)
{ i++;
s+=i;
if(s>=6) break;
}
printf("%d",s);
}
查看答案
C. 6
77单选题77 / 300
C语言中,数组名代表(  )
查看答案
B. 数组的首地址
78单选题78 / 300
执行以下程序时输入1234567,程序的运行结果是( )。main()
{ int x,y;
scanf("%2d%2d",&x,&y);
printf("%d\n",x+y);
}
查看答案
C. 46
79单选题79 / 300
赋值运算符的结合性是( )
查看答案
D. 从右向左
81单选题81 / 300
下列正确的定义语句是
查看答案
C. char str[ ][6]=
{"one","two","three"}
;
82单选题82 / 300
由机器随机产生20个在10~99之间(含10和99)的整数存入a数组,然后进行冒泡法升序排序。最后将排序结果输出,要求每行输出10个数。___处应填入的内容是()
#include<stdio.h>
#include<stdlib.h>
#define N 20void main()
{ int i,j,x,y,m,n,k;
int a[N];
for(i=0;
i<N;
i++) a[i]=rand()%90+10;
for(i=0;
i<N-1;
i++)
for(j=0;
j<N-1-i;
j++) if(a[j]>a[j+1])
{ k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
for(i=0;
i<N;
i++)
{ printf("%4d",a[i]);
if(_________) printf("\n");
}
}
查看答案
D. i%10==9
84单选题84 / 300
下面叙述正确的是(  )
查看答案
D. 每条语句最后必须有一个分号
87单选题87 / 300
已定义int a,b,c;下面________与其它3个不同。
查看答案
C. if(a> b) c=a;a=b;b=c;
90单选题90 / 300

#include <stdio.h>
int main()
{ int i,j,a[5]=
{2,9,11,13,15}
;
for(i=0;
i<5;
i++)
{
for(j=2;
j<=a[i]-1;
j++) if(a[i]%j==0) break;
if(j==a[i]) printf("%3d",a[i]);
}
return 0;
}
查看答案
A. 2 11 13
91单选题91 / 300
下列程序运行结果为()main()
{ int i,j,k,s,p,t;
p=-1,t=0;
for(i=6;
i>0;
i--)
{ s=1;
p=p+i;
t=t-i;
for(j=1;
j<=i;
j++)
for(k=1;
k<=j;
k++) s=s+1;
t=t+j;
}
printf(“%d,%d,%d”,s,t,p);
}
查看答案
B. 2,6,20
92单选题92 / 300
求1000以内的同构数
#include <stdio.h>main()
{ int i,k;
for(i=2;
i<=1000;
i++)
{ k=i*i;
if(__________________) printf("%d\t",i);
}
}
查看答案
C. k%10==i||k%100==i||k%1000==i
93单选题93 / 300
若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是( )。
#include "stdio.h"main()
{ int c;
while ((c=getchar())!='\n') switch (c-'2')
{ case 0: case 1: putchar(c+4);
case 2:putchar(c+4);
break;
case 3:putchar(c+3);
default:putchar(c+2);
break;
}
printf("\n");
}
查看答案
A. 668977
94单选题94 / 300
下列程序运行结果为()main()
{ int x=1,y=1,a=0,b=0;
switch(x)
{ case 1:switch(y)
{ case 0:a++;
break;
case 1:b++;
break;
}
case 2:a++;
b++;
}
printf("a=%d,b=%d",a,b);
}
查看答案
B. a=1,b=2
96单选题96 / 300
若a,b,c都是int型变量,且a=2,b=3,c=4,若执行以下语句a*=16+(b++)-(++c)后a的值为
查看答案
A. 28
97单选题97 / 300
以下对一维数组初始化正确的是(  )
查看答案
B. int a[]=
{1,2,3}
;
98单选题98 / 300
C语言中要使用数学库函数,需要在源文件中包含的头文件是
查看答案
B. math.h
99单选题99 / 300
如果输入8,4 ,下列程序的运行结果是
#include <stdio.h>
int main()
{ int a,b,t;
scanf("%d,%d",&a,&b);
if(a<b)
{t=a;
a=b;
b=t;
}
while(a%b!=0)
{ t=a%b;
a=b;
b=t;
}
printf("%d",b);
return 0;
}
查看答案
D. 4
101单选题101 / 300
下列程序的运行结果是
#include <stdio.h>
int main()
{ int m,n;
m=0;
n=123;
while(n)
{ m=m*10+n%10;
n=n/10;
}
printf("%d",m);
return 0;
}
查看答案
D. 321
102单选题102 / 300
a数组中是一组升序的数,现由键盘输入一个待查的整数x,用二分法查找,若x存在输出其所在的位置,否则给出没找到信息。请将程序填充完整。
#include <stdio.h>
#define N 10void main()
{  int i,x,low,high;
int a[10]=
{25,28,37,44,65,76,79,83,85,92}
;
scanf("%d",&n);
low=0;
high=9;
scanf("%d",&x);
while (low<=high)
{  mid=(low+high)/2;
if(x<a[mid]) high=mid-1;
if(x>a[mid]) low=mid+1;
if (x==a[mid]) break;
}
if(______) printf("found,%d in position %d\n",n,mid);
else printf("%d no found\n",n);
}
查看答案
B. low<=high
105单选题105 / 300
下列程序的运行结果是
#include <stdio.h>
int main()
{ int i,m=0,n=0,a[5]=
{-1,2,-3,9,0}
;
for(i=0;
i<5;
i++) if(a[i]>0) m++;
else n++;
printf("%d,%d",m,n);
return 0;
}
查看答案
B. 2,3
106单选题106 / 300
扩展名为.exe的文件称为C语言的(  )
查看答案
C. 可执行程序
107单选题107 / 300
下面关于C语言叙述错误的是(  )
查看答案
B. 构成C语言源程序的基本单元是算术表达式
108单选题108 / 300
下面________是程序的正确运行结果(  )。 main()
{  int a=66; char c=‘B'; printf(“%d+%c=%d”,a,c,a+c); }
查看答案
D. 66+B=132
109单选题109 / 300
下列程序运行结果为()。main()
{ int x=0,y=2,z=3;
switch(x)
{ case 0:switch(y=2)
{ case 1:printf("*");
break;
case 2:printf("%%");
break;
}
case 1:switch(z)
{ case 1:printf("$");
break;
case 2:printf("*");
break;
default:printf("!");
}
}
}
查看答案
A. %!
110单选题110 / 300
以下程序的运行结果是(  )
#include<stdio.h> main()
{  int a=1,b=2,t=3; if(a<b)
{ t=b; b=a; a=t; }
printf(“%d,%d,%d”,a,b,t); }
查看答案
C. 2,1,2
111单选题111 / 300
break语句的正确的用法是( )。
查看答案
C. 跳出本层循环。
112单选题112 / 300
由键盘输入一个待查的整数n,若n存在,则输出它在数组中的第一个出现的位置,否则给出没找到信息。请将程序填充完整。
#include <stdio.h>
#define N 10void main()
{  int i,n;
int a[10]=
{25,2,67,34,65,86,56,78,24,34}
;
scanf("%d",&n);
i=0;
while(a[i]!=n &&i<10) i= i+1;
if ( ____________) printf("%d not found!",n);
else printf("%d in position %d\n",n,i);
}
查看答案
D. i==10
113单选题113 / 300
当执行下面的程序时,如果输入ABC,则写出下面程序的运行结果()
#include <stdio.h>
#include <string.h>main()
{ char ss[10]="12345";
gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);
}
查看答案
A. ABC6789
114单选题114 / 300
判断字符串a和b是否相等,应当使用(  )
查看答案
A. if(strcmp(a,b)==0)
115单选题115 / 300
下列程序运行结果为()
#include<stdio.h>main()
{ int i,j,k,a,b,c;
a=b=0;
c=1;
for(j=1;
j<=5;
j++)
{ a++;
for(k=1;
k<=j;
k++)
{ b+=2;
for(i=-1;
i<=k;
i++) c++;
}
}
printf("a=%d\nb=%d\nc=%d",a,b,c);
}
查看答案
A. a=5b=30c=66
117单选题117 / 300
下列程序段运行结果为() char ch[]=”600”;
int a,s=0;
for (a=0;
ch[a]>=’0’&&ch[a]<=’9’;
a++) s=10*s+ch[a]-‘0’;
printf(“%d”,s);
查看答案
B. 600
118单选题118 / 300
执行语句:printf(“|%10.5f| ”,12345.678);的输出是( )。
查看答案
A. |12345.67800|
119单选题119 / 300
下列程序的运行结果是()
#include<stdio.h>void main()
{ char ch[4][5]=
{"AAAA","BBB","CC","DDD"}
;
printf("%s\n",ch[0]);
}
查看答案
A. AAAA
120单选题120 / 300
由机器随机产生20个在10~99之间(含10和99)的整数存入a数组,然后进行冒泡法升序排序。___处应填入的内容是()
#include<stdio.h>
#include<stdlib.h>
#define N 20void main()
{ int i,j,x,y,m,n,k;
int a[N];
for(i=0;
i<N;
i++) a[i]=rand()%90+10;
for(i=0;
i<N-1;
i++)
for(j=0;
j<______;
j++) if(a[j]>a[j+1])
{ k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
for(i=0;
i<N;
i++)
{ printf("%4d",a[i]);
if((i+1)%10==0) printf("\n");
}
}
查看答案
A. N-1-i
121单选题121 / 300
下列程序的运行结果是
#include <stdio.h>
int main()
{ int i=1,sum=0;
while(i<=10)
{ if(i%2==0) sum=sum+i;
else break;
i++;
}
printf("%d",sum);
}
查看答案
A. 0
124单选题124 / 300
在main函数中定义了变量int i=1;在复合语句中又定义了
{int i=2;
printf("%d",i++);
}
则printf函数输出结果是
查看答案
B. 2
125单选题125 / 300
下列程序运行结果为()。main()
{ int x=0,y=2,z=2;
switch(x)
{ case 0:switch(y==2)
{ case 1:printf("*");
case 2:printf("%%");
break;
}
break;
case 1:switch(z)
{ case 1:printf("$");
break;
default:printf("!");
break;
case 2:printf("*");
}
}
}
查看答案
D. *%
126单选题126 / 300
下列成对的表达式中,运算符结果相同的一对是
查看答案
D. 5.0/3.0 5/(float)3
128单选题128 / 300
有以下数组定义:char str[20];
下面对数组赋值的方法正确的是
查看答案
C. strcpy(str,"boy");
129单选题129 / 300
下列叙述正确的是( )。
查看答案
D. 在switch语句中,不一定使用break语句
133单选题133 / 300
下列程序运行结果为()
#include<stdio.h> main()
{  int i,j,p,n=3,s=0;
for(i=1;
i<=n;
i++)
{ p=1;
for(j=1;
j<=i;
j++) p=p*j;
s=s+p;
}
printf(“s=%d\n”,s);
}
查看答案
C. s=9
135单选题135 / 300
下列各项中,_____和表达式x/=y-4等价(  )
查看答案
B. x=x/(y-4)
136单选题136 / 300
求Fibonacci数列前20项主要程序段中横线中应该填(  )
for(i=1;
i<=18;
i++)
{ f3=f1+f2;
printf("%d\t",f3);
f1=f2;
_________}
查看答案
A. f2=f3;
137单选题137 / 300
C语言中要使用字符库函数,需要在源文件中包含的头文件是
查看答案
D. ctype.h
141多选题141 / 300
设x,k都是整形,则选项等价的是( )
查看答案
A. x%=k-k%5 C. x%=(k-k%5)
142多选题142 / 300
下列程序的功能是统计一个字符串中的字母.数字.空格和其它字符的个数。______处可以填写的语句是()
#include<stdio.h>
#include<ctype.h>void main()
{  char str[81];
int n[4]=
{0}
;
int i,k;
gets(str);
for(i=0;
str[i];
i++) if(isalpha(str[i]) n[0]++;
else if(___________) n[1]++;
else if(str[i]==' ') n[2]++;
else n[3]++;
for(k=0;
k<4;
k++) printf("%4d",n[k]);
}
查看答案
A. isdigit(str[i]) D. str[i]>='0'&&str[i]<='9'
143多选题143 / 300
以下描述正确的是()。
查看答案
C. 在循环语句中使用continue语句 是为了结束本次循环,而不是终 止整个循环的执行 D. 在循环语句中使用break语句是为了使流程跳 出循环体,提前结束循环
144多选题144 / 300
下列关于C语言空语句的作用说法正确的是
查看答案
A. 空语句只有一个分号,它什么也不做。 C. 空语句可以用来作为流程的转向点。 D. 空语句可用来作为循环语句中的循环体,表示循环什么也不做。
145多选题145 / 300
能把字符串"Hello!"赋值给数组b的语句是
查看答案
B. char b[10];
strcpy(b, "Hello!"); C. char b[10] ="Hello!" D. char b[10]=
{ 'H','e','l','l','o','! '}
;
148多选题148 / 300
若有定义:int a[3][4]=
{0}
;
则下面不正确的叙述是(  )
查看答案
A. 只有元素a[0][0]可得到初值0 B. 此说明语句不正确 C. 数组a中各元素都可得到初值,但其值不一定为0
149多选题149 / 300
字符‘a'占用的存储空间不为(  )
查看答案
B. 2 个字节 C. 3 个字节 D. 4 个字节
150多选题150 / 300
以下定义语句中,正确的是
查看答案
A. int a[]=
{1,2,3}
; B. char b[20]="boy"; C. char c[]="China";
151多选题151 / 300
下面关于循环语句
for.while.do while的叙述正确的是
查看答案
A. 3种循环都可以用来处理同一问题,一般情况下它们可以互相代替 B. 3种循环都可能出现无限循环的情况
152多选题152 / 300
关于递推法,下列说法正确的是()
查看答案
A. 递推算法的首要问题是得到相邻的数据项间的关系 B. 递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。 C. 一般说来,可以将递推算法看成是一种特殊的迭代算法。 D. 所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果。
153多选题153 / 300
与下面程序段不等价的是( )
for(n=100;
n<=200;
n++)
{ if(n%3= =0) continue;
printf(“%4d”,n);
}
查看答案
A.
for(n=100;
(n%3&&n<=200;
n++) printf(“%4d”,n); B.
for (n=100;
(n%3)||n<=200;
n++) printf(“%4d”,n); D.
for(n=100;
n<=200;
n++)
{ if(n%3) printf(“%4d”,n);
else continue;
break;
}
154多选题154 / 300
以下能对二维数组a正确初始化的语句是(  )
查看答案
A. int a[2][3]=
{0}
; B. int a[ ][3]=
{
{1,2}
,
{0}
}
; D. int a[ ][3]=
{1,2,3,4,5,6}
;
155多选题155 / 300
下面那些设计程序的习惯能提高我们编写程序效率
查看答案
A. 在编写统计元素个数的程序时,定义计数器变量,并赋初值为0 B. 在编写求和程序时,定义求和变量,并赋初值为0 C. 在编写求乘积的程序时,定义积变量,并赋初值为1 D. 在编写求极值的程序时,定义极值变量,并赋值为第一个待比较元素
156多选题156 / 300
( )下列不是构成C语言程序的基本单位。
查看答案
B. 过程 C. 子程序 D. 子例程
157多选题157 / 300
下列语句中,不正确的是
查看答案
A. char a[3][ ]=
{'abc','1'}
; C. char a[ ][3] =
{'abc','1'}
; D. char a[3][ ]=
{'a',"1"}
;
158多选题158 / 300
关于迭代法,下列说法正确的是()
查看答案
A. 迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程 B. 每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值 C. 迭代法又分为精确迭代和近似迭代。 D. 是一种不断用变量的旧值递推新值的过程
159多选题159 / 300
定义数组:float a[8];
则下列对数组元素引用不正确的是(  )
查看答案
B. a[8]=a[0]; C. a=1; D. a[3.5]=1;
161多选题161 / 300
下面叙述错误的是(  )
查看答案
B. 变量不用定义就能使用 C. main函数必须位于文件的开头 D. 每行只能写一条语句
162判断题162 / 300
若int i=10;
执行下列程序后,变量i的正确结果是11( )。switch (i)
{case 9: i+=1 ;
case 10: i+=1 ;
case 11: i+=1 ;
default : i+=1 ;
}
查看答案
B. 错误
163判断题163 / 300
在编写求一组数据最大值max的程序时,可以把第一个元素先赋值给变量max。
查看答案
A. 正确
164判断题164 / 300
对一维数组进行初始化时,可以只对部分元素初始化,未被初始化的元素初值为0。
查看答案
A. 正确
169判断题169 / 300

#include <stdio.h>main()
{ int k=10;
while(k>5) switch(k--)
{ default:printf("%d",--k);
case 8: case 6: printf("%d",k--);
break;
case 4:printf("%d",k--);
case 2:printf("%d",--k);
}
}
运行结果为:8855
查看答案
A. 正确
170判断题170 / 300
下列程序的运行结果是e()
#include<stdio.h>
#include<string.h>main()
{ char a[7]="abcdef";
char b[4]="ABC";
strcpy(a,b);
printf("%c",a[4]);
}
查看答案
A. 正确
171判断题171 / 300
将N个数按升序进行排序,最后将排序的结果输出。________处应填入N-2。
#include <stdio.h>
#define N 8void main()
{  int i,j;
int temp;
int R[ ]=
{8,7,4,3,1,6,2,9}
;
printf("排序前:\n");
for(i=0;
i<N;
i++) printf("%d\t",R[i]);
printf("\n");
for (i=______;
i>=0;
i--)
{  temp=R[i];
j=i+1;
while(j<N&&(temp>R[j]))
{ R[j-1]=R[j];
j++;
}
R[j-1]=temp;
}
printf("排序后:\n");
for(i=0;
i<N;
i++) printf("%d\t",R[i]);
printf("\n");
}
查看答案
A. 正确
173判断题173 / 300
下列程序(1)处和(2)处可以合并,可以在(1)处写成k+=2()。
#include<stdio.h> main()
{  int i,j,k=10;
for(i=1;i<=4;i++)
{ k++;//(1)
for(j=0;j<3;j++)k++; k++;//(2) }
printf(“%d”,k); }
查看答案
A. 正确
176判断题176 / 300
执行下列程序片段时输出结果是1( )。int x=13,y=5;
printf(“%d”,x%=(y/=2));
查看答案
A. 正确
180判断题180 / 300
头文件的文件后缀.h,因为这些文件都是放在程序各文件模块的开头的。
查看答案
A. 正确
183判断题183 / 300

for循环不限于计数循环,循环条件可以是逻辑表达式和字符表达式等。
查看答案
A. 正确
186判断题186 / 300
头文件调用属于编译预处理,不占用运行时间,只占编译时间。
查看答案
A. 正确
192判断题192 / 300
C语言中将浮点型数据赋值给整型变量时,先对浮点数取整,舍弃小数部分,然后赋值给整型变量。
查看答案
A. 正确
196判断题196 / 300
while循环是先判断条件后执行循环体,有可能一次也不执行循环体。
查看答案
A. 正确
197判断题197 / 300
使用while循环和do while循环时,都不需要提前给循环变量赋初值。
查看答案
B. 错误
198判断题198 / 300
在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。
查看答案
A. 正确
200判断题200 / 300
当运行以下程序时,从键盘分别输入:BOOK<CR>CUT<CR>GAME<CR>PAGE<CR>(<CR>表示回车),则下面程序的运行结果是 PAGE()
#include<stdio.h>
#include<string.h>main()
{ int I;
char str[10],temp[10]=”Control”;
for(I=0;
I<4;
I++)
{ gets(str);
if(strcmp(temp,str)<0) strcpy(temp,str);
}
puts(temp);
}
查看答案
A. 正确
201判断题201 / 300
一个C语言语句必须在最后有一个分号,分号是语句不可缺少的组成部分。
查看答案
A. 正确
202判断题202 / 300
求一组字符串的极值时,也可以通过关系运算符直接比较字符串的大小。
查看答案
B. 错误
203判断题203 / 300
有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是a=1 b=3 c=2↙( )。
查看答案
B. 错误
205判断题205 / 300
所谓回文数就是一个数和他各位数字反过来组成的数相等。下列程序能够实现判断一个数是否是回文数
#include <stdio.h>
int main()
{ int n,m;
scanf("%d",&n);
while(n)
{ m=m*10+n%10;
n=n/10;
}
if(m==n) printf("n是回文数");
return 0;
}
查看答案
B. 错误
206判断题206 / 300
对两个数组a和b进行如下初始化,则两个数组完全相同()char a[ ]= "ABCDEF";
char b[ ]=
{'A','B','C','D','E','F'}
;
查看答案
B. 错误
210判断题210 / 300
main()
{ char c1;
c1='a';
printf(“%d,%c\n”,c1,c1);
printf(“%s”, “abc”);
}
运行结果是:97,a abc
查看答案
A. 正确
211判断题211 / 300
求两个数的最小公倍数,可以先求出两数的最大公约数,然后用两数乘积除以最大公约数得到最小公倍数。
查看答案
A. 正确
212判断题212 / 300
a数组中是一组升序的数,现由键盘输入一个待查的整数x,用二分法查找,若x存在输出其所在的位置,否则给出没找到信息。___处应填入的内容是k=1()。
#include <stdio.h>
#define N 10int main()
{  int i,x,low,high,mid,k;
int a[N]=
{25,28,37,44,65,76,79,83,85,92}
;
low=0;
high=N-1;
scanf("%d",&x);
k=0;
low=0;
high=N-1;
scanf("%d",&x);
low=0;
high=9;
k=0;
scanf("%d",&n);
while (k==0 && low<=high)
{  mid=(low+high)/2;
if(x<a[mid]) high=mid-1 ;
if(x>a[mid]) low=mid+1 ;
if (x==a[mid])______;
}
if(k==1) printf("found,%d in position %d\n",x,mid);
else printf("%d no found\n",x);
return 0;
}
查看答案
A. 正确
213判断题213 / 300
下列程序运行结果为:28 70()
#include<stdio.h>main()
{ int x,i;
for(i=1;
i<=100;
i++)
{ x=1;
if(++x%2= =0) if(++x%3= =0) if(++x%7= =0) printf(“%d ”,x) }
}
查看答案
B. 错误
214判断题214 / 300
判断n是否是素数,没必要从2检查到n-1,可以从2检查到sqrt(n)。
查看答案
A. 正确
215判断题215 / 300
从键盘输入20个整数,统计出其中素数的个数,并求出素数的平均值,_____应填入的内容是sum/num。
#include <stdio.h>void main()
{ int a[20],i,j,flag,sum,num;
sum=num=0;
for(i=0;
i<20;
i++) scanf("%d",&a[i]);
for(i=0;
i<20;
i++)
{ flag=1;
for(j=2;
j<=a[i]/2;
j++) if(a[i]%j==0)
{ flag=0;
break;
}
if(flag==1)
{ sum+=a[i];
num++;
}
}
printf("Geshu=%d Average=%.1f\n",num,_______);
}
查看答案
A. 正确
218判断题218 / 300
数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。
查看答案
A. 正确
223判断题223 / 300
从键盘输入10个数,再将这10个数按升序进行排序,最后将排序的结果输出。_____处应填入的内容是k!=j()。
#include<stdio.h>int main()
{  int a[10];
int i,j,k,t;
for(i=0;
i<10;
i++) scanf("%d",&a[i]);
i=0;
do
{  k=i;
j=i+1;
while(j<10)
{  if(a[j]<a[k]) k=j;
j++;
}
if(_____)
{  t=a[i];
a[i]=a[k];
a[k]=t;
}
i++;
}
while(i<9);
for(i=0;
i<10;
i++) printf("%d\t",a[i]);
return 0;
}
查看答案
B. 错误
225判断题225 / 300
下列程序运行结果为3,6,3()
#include<stdio.h>main()
{  int i,j,k,x,y,z; x=y=z=0;
for(i=1;i<=3;i++)
{ x++;
for(j=1;j<i;j++) y+=2;
for(k=1;k<j;k++) z++; }
printf(“%d,%d,%d”,x,y,z);}
查看答案
A. 正确
226判断题226 / 300
main()
{ int a,b,c;
scanf(“%d,%d”,&a,&b);
c=a>b?a:b;
printf("c=%d\n",c);
}
当输入30,40时,运行结果:40
查看答案
B. 错误
228判断题228 / 300
将数组与循环结合起来,可以有效处理大批量的数据,大大提高效率。
查看答案
A. 正确
229判断题229 / 300
用汇编语言编写的程序称为汇编语言源程序,其特点是使用了助记符号,克服了机器语言难读.难编.难记等缺点(  )
查看答案
A. 正确
230判断题230 / 300
若每个case后都有break语句,则各个case和default的出现次序不影响执行结果()。
查看答案
A. 正确
234判断题234 / 300
main()
{ float x=1.23456,y=-1.2356;
printf(“%-4.2f,%6.2f”,x,y);
}
运行结果是:1.23 ,- 1.24
查看答案
B. 错误
238判断题238 / 300
用筛选法求素数的过程,就是把所有处理对象先“装入”一维数组,然后把数组中所有非素数置零,这样非零元素就是素数了。
查看答案
A. 正确
240判断题240 / 300
下列程序的输出结果是3行值()
#include<stdio.h> main()
{  int i,j;
for(i=3;i>=1;i--)
{
for(j=3;j〉i;j--) printf(“%d”,i+j); printf("\n"); }
}
查看答案
B. 错误
241判断题241 / 300
int a;
a=3/2;
在C语言中整数进行触发运算,自动转换为浮点数,所以a的值为1.5。
查看答案
B. 错误
242判断题242 / 300
以“
#”开头的编译预处理命令后面没有“;”,因为它不是C语言语句。
查看答案
A. 正确
243判断题243 / 300
下列程序运行结果为 9()
#include<stdio.h>main()
{  int i,j,p,n=3,s=0;
for(i=1;
i<=n;
i++)
{ p=1;
for(j=1;
j<=i;
j++) p=p*j;
s=s+p;
}
printf(“s=%d\n”,s);
}
查看答案
B. 错误
244判断题244 / 300
下面程序的运行结果是 -1,2( )
#include<stdio.h>main()
{ int y,a;
y=2;
a=1;
while(y--!=-1)
{ do
{a*=y;
a++;
}
while(y--);
}
printf(“%d,%d”,a,y);
}
查看答案
B. 错误
245判断题245 / 300
main ( )
{ int a=252;
printf(“a=%o a=%
#o\n”,a,a);
printf(“a=%x a=%
#x\n”,a,a);
}
运行结果:a=374 a=0374 a=fc a=0xfc
查看答案
A. 正确
246判断题246 / 300
下列程序的功能是将n个学生的考试成绩进行分段统计,成绩由键盘输入存入a数组,各分段的人数存到b数组:成绩为100的人数存到b[5]中,成绩为90到99的人数存到b[4],成绩为80到89的人数存到b[3]中,成绩为70到79的人数存到b[2],成绩为60到69的人数存到b[1],成绩为60分以下的人数存到b[0]中。______处应填入的内容是(a[i]-60)/10( )
#include<stdio.h>void main()
{  int i,n,a[200],b[6];
scanf("%d",&n);
for(i=0;
i<n;
i++) scanf("%d",&a[i]);
for(i=0;
i<6;
i++) b[i]=0;
for(i=0;
i<n ;
i++) if(a[i]<60) b[0]++;
else b[_______]++;
for(i=0;
i<6;
i++) printf("%d",b[i]);
printf("\n");
}
查看答案
B. 错误
250判断题250 / 300
执行下列程序片段时输出结果是16( )。 int x=5,y;
y=2+(x+=x++,x+8,++x);
printf(“%d”,y);
查看答案
B. 错误
251判断题251 / 300
如果x被定义为double ,经过(int)x强制类型转化后,x的类型为整型。
查看答案
B. 错误
252判断题252 / 300
程序中要用到标准函数库中的输入输出函数,应在开头加上
#include。
查看答案
A. 正确
254判断题254 / 300
递推算法除初始状态外,其它各个状态都可以用固定的递推关系式来表示。
查看答案
A. 正确
261判断题261 / 300
下列程序的运行结果是6,7()
#include<stdio.h>
#include<string.h>void main()
{ char str[12]="string";
printf("%d,%d\n",strlen(str),sizeof(str));
}
查看答案
B. 错误
262判断题262 / 300
如果想定义一个整型数组,并初始化所有元素为0,可以写成int a[10]=
{0}
;
查看答案
A. 正确
263判断题263 / 300
在编写求一组数据的积的时候,可以把存放结果的变量初值赋值为0。
查看答案
B. 错误
264判断题264 / 300
从键盘输入10个整数,将这10个整数按升序排列。则_____应填入j>N-i-1( )
#include <stdio.h>
#define N 10int main()
{  int i,j,k,a[N];
for(i=0;
i<N;
i++) scanf("%d",&a[i]);
printf("排序前:\n");
for(i=0;
i<N;
i++) printf("%d",a[i]);
printf("\n");
for(i=N-1;
i>0;
i--)
{
for(j=N-2;
________;
j--) if(a[j]>a[j+1])
{  k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
printf("排序后:\n");
for(i=0;
i<N;
i++) printf("%d",a[i]);
printf("\n");
return 0;
}
查看答案
B. 错误
268判断题268 / 300
在case后面的各常量表达式的值可以相同,程序不会出现错误()。
查看答案
B. 错误
269判断题269 / 300
下列程序运行结果为4()
#include <stdio.h>main()
{ int i,r;
char s1[80]=”bus”;
char s2[80]=”book”;
for(i=r=0;
s1[i]!=’\0’&&s2[i]!=’\0’;
i++) if(s1[i]==s2[i]) i++;
else
{ r=s1[i]-s2[i];
break;
}
printf(“%d”,r);
}
查看答案
A. 正确
270判断题270 / 300
main ( )
{ int a=12345;
float b=-198.345, c=6.5;
printf(“a=%4d,b=%-10.2e,c=%6.2f\n”,a,b,c);
}
运行结果:a=1234,b=-1.98e+002,c= 6.50
查看答案
B. 错误
271判断题271 / 300
只有同种循环语句才能嵌套使用,例如while循环里面只能嵌套while循环。
查看答案
B. 错误
273判断题273 / 300
case后面的各常量表达式的值可以是一个整数.字符常量.枚举常量或常量表达式()。
查看答案
A. 正确
274判断题274 / 300
在循环语句嵌套使用的情况下,break语句只能跳出(或终止)它所在的循环,而不能同时跳出(或终止)多层循环
查看答案
A. 正确
280判断题280 / 300
在一个函数中,如果在复合语句之外定义了变量k,则k不能在复合语句中使用。
查看答案
B. 错误
282判断题282 / 300
穷举法一般称之为“没有办法的办法”,经典题目是:水仙花数.判定奇偶数.百钱百鸡。
查看答案
B. 错误
283判断题283 / 300
k=strcmp("ABC","ABC")由于两个字符串相等,所有比较得到的结果k=1。
查看答案
B. 错误
287判断题287 / 300
如果一个字符串中包含多个‘\0’字符串处理函数在遇到最后一个‘\0’时结束。
查看答案
B. 错误
288判断题288 / 300

for循环语句如果省略了表达式2(循环条件),则此循环无论怎么处理都是死循环。
查看答案
B. 错误
290判断题290 / 300
do while循环体内可以使用break语句,但是while循环体内不能用break语句。
查看答案
B. 错误
293判断题293 / 300
用汇编语言编写的程序称为汇编语言源程序,其特点是使用了助记符号,克服了机器语言难读.难编.难记等缺点。(  )
查看答案
A. 正确
294判断题294 / 300
sizeof函数和strlen函数功能类似,都是用来求字符串中有效字符的个数的。
查看答案
B. 错误
295判断题295 / 300
所谓的水仙花数是指一个四位数,其各位数字立方和等于该数。
查看答案
B. 错误
298判断题298 / 300

for循环和do while循环一样,都是先执行循环体,循环体至少也得执行一次。
查看答案
B. 错误
300判断题300 / 300
在if条件表达式中通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。
查看答案
B. 错误
← 上一卷下一卷 →