通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
以下叙述正确的是
在C程序中,main函数必须位于程序的最前面
C程序的每行中只能写一条语句
C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可发现注释中的拼写错误
第2题
以下叙述不正确的是
一个C源程序必须包含一个main函数
一个C源程序可由一个或多个函数组成
C程序的基本组成单位是函数
在C程序中,注释说明只能位于一条语句的后面
第3题
设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是( )。
z=exp(y)+fabs(x);
y=log10(y)+pow(y);
z=sqrt(y-z);
x=(int)(atan2(double)x,y)+exp(y-0.2)
第4题
以下C程序的运行结果是( )。(注释:□表示空格)
#include<stdio.h> int main() { long y=-43456; printf("y=%-8ld\n",y); printf("y=%-08ld\n",y); printf("y=%08ld\n",y); printf("y=%+8ld\n",y); return 0; }
y=□□-43456 y=-□□43456 y=-0043456 y=-43456
y=43456 y=-43456 y=0043456 y=+□43456
y=43456 y=-43456 y=0043456 y=□□-43456
y=□□-43456 y=-0043456 y=00043456 y=+43456
第5题
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )。
extem
register
auto
static
第6题
在C语言中,要求运算数必须是整型的运算符是( )。
/
++
!=
%
第7题
若有初始化语句:int a[3][4]={0};则下面正确的叙述是( )。
只有元素a[0][0]可得到初值0
此初始化语句不正确
数组a中个元素都可得到初值,但其值不一定是0
数组a中每个元素均可得到初值0
第8题
设有程序段:int k=10;while(k=0)k=k-1;则下面描述正确的是( )。
while循环执行10次
循环是无限循环
循环体语句一次也不执行
循环体语句执行一次
第9题
已有变量定义和函数调用语句int a=25;print_value("&A");下面函数的正确输出结果是
void print_value(int x) { printf("%d\n",++x); }
23
24
25
26
第10题
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。
int main() { int *p,*q,a,b; p=&a; printf("intput a:"); scanf("%d",*p); }
*p表示的是指针变量p的地址
*p表示的是变量a的值,而不是变量a的地址
*p表示的是指针变量p的值
*p只能用来说明p是一个指针变量
第11题
下面程序段运行结果是( )。
int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); }
-4 0 4 0 4
-4 0 4 0 3
-4 0 4 4 3
-4 0 4 4 0
第12题
以下程序输出的是( )。
#include<stdio.h> int main() { int x=2,y=1,z=2; if(x<y) if(y<0) z=0; else z+=1; printf("%d\n",z); return 0; }
3
2
1
0
第13题
以下程序的输出是( )。
#include<stdio.h> int main() { int x=1; if(x=2) printf("OK"); else if(x<2) printf("%d\n",x); else printf("Quit"); }
OK
Quit
无输出结果
第14题
以下程序的正确运行结果是( )。
#include<stdio.h> void num() { extern int x,y; int a=15,b=10; x=a-b; y=a+b; } int main() { int x,y; int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); return 0; }
12,2
不确定
5,25
1,12
第15题
假设等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空( )。
#include<stdio.h> int main() { int a=1,g=2,n=0,sum=0; do { ______; ++n; a*=g; }while(sum<100); n-=1; printf("%d\n",n); return 0; }
sum++
sum+=a
sum=a+a
a+=sum
第16题
设有如下结构体说明:
struct ST { int a; float b; struct ST *c; double x[3]; }st1;
请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型__________。
第17题
C语言源程序的基本单位是______________。
第18题
在C语言源程序中,一个变量代表______________。
第19题
若有定义语句:char c='\010';则变量c中包含的字符个数为______________。
第20题
若有定义语句:int b=7;float a=2.5,c=4.7;则表达式:a+(int)(b/3*(int)(a+c)/2)%4的值为________。
第21题
下面程序段中循环体的执行次数是___________。
a=10;b=0; do { b+=2; a-=2+b; }while(a>=0);
第22题
字符串"ab\n\\012\\\"的长度是__________。
第23题
请读以下函数
getbits(unsigned x,unsigned p,unsigned n) { x=((x<<(p+1-n))&((unsigned)-0>>n)) return x; }
假设机器的无符号整数字长为16位,若调用此函数时x=0115032,p=7则函数返回值的八进制数是___________。
第24题
设有char a,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是___________。
第25题
下面程序段运行结果是_________。
char *s1="AbcdEf",*s2="aB"; int t; s1++; t=(strcmp(s1,s2)>0); printf("%d\n",t);
第26题
以下程序功能是:计算某年某月有几天,其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年,请填空
#include<stdio.h> int main() { int yy,mm,len; printf("year,month="); scanf("%d%d",&yy,&mm); switch(mm) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:___1___;break; case 4: case 6: case 9: case 11:len=30;break; case 2: if(yy%4==0&&yy%100!=0||yy%400==0) ___2___; else ___3___;break; default:printf("input error");break; printf("the length of%d%d is %d\n",yy,mm,len); return 0; } }
第27题
若运行时输入:4.4<回车>,则以下程序的运行结果是( )。
#include<stdio.h> int main() { float costPrice,sellingPrice; printf("Enter cosPrice$:"); scanf("%f",&costPrice); if(costPrice>=5) { sellingPrice=costPrice+costPrice*0.25; printf("Selling Price(0.25)$%6.2f",sellingPrice); } else { sellingPrice=costPrice+costPrice*0.30; printf("Selling Price(0.30)$%6.2f",sellingPrice); return 0; } }
第28题
以下程序运行结果是_________。
#include<stdio.h> int main() { int n=0; n+=(n=10); printf("%d\n",n); return 0; }
第29题
以下printf语句中的负号的作用是__________,该程序的输出结果是______________。
#include<stdio.h> int main() { int x=12; double a=3.1415926; printf("%6d##\n",x); printf("%-6d##\n",x); printf("%14.101df##\n",a); printf("%-14.101df##\n",a); }
第30题
函数f中的形参a为一个10*10的二维数组,n的值为5,以下程序运行结果为__________。
#include<stdio.h> void f(int a[10][10],int n) { int i,j,k; j=n/2+1; a[i][j]=1,i=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; if((i<1)&&(j>n)) { i=i+2; j=j-1; } else { if(i<1) i=n; if(j>n) j=1; } f(a[i][j]==0) a[i][j]=k; else{ i=i+2; j=j-1; a[i][j]=k; } } }
第31题
下面程序的功能是将二维数组a中的每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b,请填空。
#include<stdio.h> int main() { int a[2][3]={4,5,6,1,2,3},b[2][3]; int i,j; printf("array a:\n"); for(i=0;i<=1;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); ___1___; for(___2___;i++) b[i][0]=a[i][2]; printf("array b:\n"); for(i=0;i<2;i++) { printf("%5d",b[i][j]); ___3___; return 0; } } }
第32题
下面程序的功能是完成用100元人民币换成1元、2元、5元所有兑换方案。
#include<stdio.h> int main() { int i,j,k,L=1; for(i=0i<=20;i++) for(j=0;j<=50;j++) { k=___1___; if(___2___) { printf("%2d%2d%2d",i,j,k); L=L+1; if(L%5==0) printf("\n"); return 0; } } }
第33题
下面程序的运行结果是___________。
#include<stdio.h> int main() { char a[80],b[80],*p="aAbcdDefgGH"; int i=0,j=0; while(*p!='\0') { if(*p>='a'&&*p<='z') { a[i]=*p; i++; } else { b[j]=*p; j++; } p++; } a[i]=b[i]='\0'; puts(a); puts(b); return 0; }
第34题
编写程序实现功能:输入整数a和b,若a2和b2>100,则输出a2+b2百位以上的数字,否则直接输出a2+b2的和
参考答案:
#include<stdio.h> int main() { int a,b,x,y; scanf("%d%d",&a,&b); x=a*a*+b*b; if(x>100) { y=x/100; printf("%d",y); } else printf("%d",a+b); return 0; }
第35题
编写程序实现功能:对于给定的一个百分制成绩,改用相应的五级分成绩表示。设:90分以上为A,80-90分为B,70-79分为C,60-69分为D,60分以下为E(要求用switc实现)。
#include<stdio.h> int main() { int score,temp,log; char grade; log=1; while(log) { printf("enter score:"); scanf("%d",&score); if((score>100)||(score<0)) printf("\n error,try again!\n"); else log=0; if(score==100) temp=9; else temp=(score-score%10)/10; switch(temp) { case 0: case 1: case 2: case 3: case 4: case 5:grade='E';break; case 6:grade='D';break; case 7:grade='C';break; case 8:grade='B';break; case 9:grade='A'; printf("score=%d,grade=%c\n",score,grade); } } }
选择题(1 - 15题,共计15分) 填空题(16 - 35题,共计85分)