通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
下面四个选项中,是C语言关键字的选项是( )。
auto Enum include
switch typedef continue
signed union scanf
if struct type
第2题
若有代数|x3+log10x|,则正确的C语言表达式是( )。
fabs(x*3+log(x))
abs(pow(x,3)+log(x))
abs(pow(x,3.0)+log(x))
yfabs(pow(x,3.0)+log(x))
第3题
一个C程序的执行是从( )。
本程序的main函数开始,到main函数结束
本程序的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序的第一个函数开始,到本程序main函数结束
第4题
以下程序叙述正确的是( )。
在C程序中,main函数必须位于程序的最前面
C程序的每行只能写一条语句
C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可以发现注释中的拼写错误
第5题
以下能对二维数组a进行正确的初始化的语句是( )。
int a[2][ ]={{1,0,1},{5,2,3}};
int a[ ][3]={{1,2,3},{4,5,6}};
int a[2][4]={{1,2,3},{4,5},{6}};
int a[ ][3]={{1,0,1,0},{},{1,1}};
第6题
设有如下程序:
#include<stdio.h> int main() { char ch1='A',ch2='a'; printf("%c\n",(ch1,ch2)); return 0; }
则以下叙述正确的是( )。
程序的输出结果为大写字母A
程序的输出结果为小写字母a
运行时产生错误信息
格式说明符的个数少于输出项的个数,编译出错
第7题
以下库函数strcpy(char*p1,char*p2);功能不相等的程序段是( )。
void strcpyl(char *p1,char *p2) { while(*p1++=*p2++)!=\0; }
void strcpy1(char *p1,char *p2) { while(*p1=*p2)!=\0 { p1++; p2++; } }
void strcpy1(char *p1,char *p2) { while(*p2) *p1++=*p2++; }
void strcpy1(char *p1,char *p2) { while((*p1++=*p2++);) *p=\0; }
第8题
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )。
extem
register
auto
static
第9题
以下程序段( )。
x=-1; do{ x=x*x; }while(x!1);
是死循环
循环执行二次
循环执行一次
有语法错误
第10题
以下正确的描述是( )。
continue语句的作用是结束整个循环的执行
只能在循环体内盒switch语句体内使用break语句
在循环体内使用break语句或continue语句的作用相同
从多层循环嵌套中退出时,只能使用goto语句
第11题
以下程序的运行结果是( )。
#include<stdio.h> int main() { int a,b,d=241; a=d/100%9; b=(-1)&(-1); printf("%d,%d",a,b); return 0; }
6,1
2,1
6,0
2,0
第12题
下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空( )。
#include<stdio.h> int main() { char s[80],c1,c2=''; int i=0,num=0; gets(s); while(s[i]!='\0') { c1=s[i]; if(i==0) c2=''; else c2=s[i-1]; if(_____) num++; i++; printf("There are%d words.\n",num); return 0; } }
c1=="&&c2=="
c1!="&&c2=="
c1=="&&c2!="
c1!="&&c2!="
第13题
下面程序段运行结果是( )。
int a[6][6],i,j; for(i=1;i<=6;i++) for(j=1;j<=6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;j++) { for(j=1;j<6;j++) printf("%2d",a[i][j]); printf("\n"); }
11111 11111 11111 11111 11111
00001 00010 00100 01000 10000
10000 01000 00100 00010 00001
10001 01010 00100 01010 10001
第14题
以下程序的正确运行的结果( )。
#include<stdio.h> #define MAX10 void sub2(),sub1(),sub3(int *A) int a[MAX],i; int main() { printf("\n"); sub1(); sub3(a); sub2(); sub3(a); return(0); } void sub2() { int a[MAX],i,max; max=5; for(i=0;i<max;i++) a[i]=i; } void sub1() { for(i=0;i<MAX;i++) a[i]=i+i; } void sub3(int a[]) { int i; for(i=0;i<MAX;i++) printf("%d",a[i]); printf("\n"); }
0 2 4 6 8 10 12 14 16 18 0 1 2 3 4
0 1 2 3 4 0 2 4 6 8 10 12 1416 18
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18
第15题
以能正确计算1*2*3*.....*10的程序段是( )。
do { i=1; s=1 s=s*i; i++; }while(i<=10);
do { i=1; s=0; s=s*i; i++; }while(i<=10);
i=1;s=1; {do; s=s*i; i++; }while(i<=10);
i=1;s=0; {do; s=s*i; i++; }while(i<=10);
第16题
为了建立如图所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data; _______ }node;
第17题
在C语言中,输入操作是由库函数___________完成的,输出操作是由库函数___________完成的。
第18题
在C语言源程序中,一个变量代表___________。
第19题
若是a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为___________。
第20题
若有定义int b=7;float a=2.5;c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为___________。
第21题
请读程序段
int a=1,b=2; if(a&b) printf("***\n"); else printf("$$$\n");
以上程序段的输出结果是__________。
第22题
下面程序段中循环体的执行次数是__________。
a=10,b=0; do{ b+=2;a=2+b; } while(a>=0);
第23题
设有以下定义:
#define SWAP(T,X,Y) { T=X; X=Y; Y=T; }
以下程序段将通过调用宏实现变量x和y内容的交换,请填空。
Double x=2.5,y=6.4,z; SWAP(_________);
第24题
字符串“ab\n\012\\\"”的长度是____________。
第25题
以下程序段通过移动指针变量m,给如图所示连续动态存储单元赋值,请填空。(假设程序段中的所有变量均已正确说明。)
for(k=0;k<10;k++,m++) scanf("%d",________)
第26题
已知字母A的ASCII码值为65,以下程序的输出结果是__________。
#include<stdio.h> int main() { char a,b; a='A'+'4'-'3'; b='A'+'6'-'2'; printf("a=%d,b=%c\n",a,b); return 0; }
第27题
以下程序的输出结果是________。
#include<stdio.h> int main() { int a=325; double x=3.1415926; printf("a=%+06dx=%+e\n",a,x); return 0; }
第28题
以下程序时应用递归算法求某数a的平方根,请填空,求平方根的迭代公式如下:
#include<stdio.h> #include<math.h> double mysqrt(double a,double x0) { double x1,y; x1=___1___; if(fabs(x1-x0)>0.00001) y=mysqrt(___2___); else y=x1; return y; int main() { double x; printf("Enter x:"); scanf("%lf",&x); printf("The sqrt of %f=%f\n",x,mysqrt(x,1.0)); return (0); } }
第29题
以下函数fun的功能是:统计用数字0~9可以组成多少个位值相同的3位偶数,请填空。
#include<stdio.h> int fun() { int n=0,i,j,k; for(i=1;i<=9;i++) for(k=0;k<=8;k__1__) for(j=0;j<=9;j++) if(__2__) n++; return n; } int main() { n=fun(); printf("n=%d\n",n); return (0); }
第30题
下面程序的运行结果是_________。
#include<stdio.h> int main() { int i,t,sum=0; for(t=i=1;i<=10; ) { sum+=t; ++i; if(i%3==0) t=-i; else t=i; } printf("sum=%d",sum); return 0; }
第31题
下面程序运行结果是_______。
#include<stdio.h> int main() { int i=0; char a[]="abm",b[]="aqod",c[10]; while(a[i]!='\0'&&b[i]!='\0') { if(a[i]>b[i]) c[i]=a[i]-32; else c[i]=b[i]-32; ++i; } c[i]='\0'; puts(c); return 0; }
第32题
以下程序的功能是判断输入的某个年份是否是闰年,请填空。
#include<stdio.h> int main() { int y,f; scanf("%d",&y); if(y%400==0) f=1; else if(__1___) f=1; else ___2___; if(f) printf("%d is",y); else printf("%d is not",y); printf("a leap year\n"); return 0; }
第33题
有如下数学公式:
已知梯形法求积分公式为:
(其中n为积分区间的等分数)函数trap是一个利用梯形法求定积分的通用求积分函数。double pexp( )是计算公式一的函数,double poly( )是计算公式二的函数,请根据以下调用语句,完成trap函数中的填空。
调用语句:
y1=trap(pexp,0.0,1.0)/sqrt(2.0*3.1416); y2=trap(sin,0.0,3.1416/2.0)/2.0; y3=trap(polyt,0.0,4.0); double trap(__1___,double a,double b) { double t,h; int i,n=1000; t=((*fun)(a)+(*fun)(b))/2.0; h=fabs(a-b)/(double)(n); for(i=1;i<=n-1;i++) t+=__2__; t*=h; return t; }
第34题
定义一个带参得宏,用以判断整数n是否能被x整除,编写程序,从终端输入一个整数,调用宏验证其是否能同时被3和7整除。
答: /*判断整数n是否能被x整除*/ #include<stdio.h> #define DIV(n,x)((n%x)==0?1:0) int main() { int y; scanf("%d",&y); if(DIV(y,3)&&DIV(y,7)) printf("yes!\n"); else printf("No!\n"); return 0; }
第35题
设文件number.dat中存放了一组整数。请编写程序统计并输出文件中正整数、零和负整数的个数。
答: #include<stdio.h> FILE*fp; int main() { int p=0,n=0,temp; fp=fopen("number.dat","r"); if(fp==NULL) printf("File cannot be found!\n"); else { while(!feof(fp)) { fscanf(fp,"%d",&temp); if(temp>0) p++; else if(temp<0) n++; else z++; } } }
选择题(1 - 15题,共计45分) 填空题(16 - 35题,共计55分)