熊猫题库

|设为首页 |收藏本站 |切换到宽版
注册
查看: 85|回复: 0

国开《C语言程序设计》综合练习术

[复制链接]

2044

主题

2044

帖子

6210

积分

论坛元老

Rank: 8Rank: 8

积分
6210
发表于 2022-6-28 11:24:57 | 显示全部楼层 |阅读模式
归纳操练
1.C语言中的循环类句子有3条,它们是( )。
2.C语言中的跳转类句子有四条,它们是goto,return和( )。
3.当不需求函数回来任何值时,则所运用的回来类型为( )。
4.在一个函数界说中,函数头包含的3个有些顺次为函数类型、函数名和( )。
5.在一个程序文件的开端,若需求运用一个包括指令包括一个头文件时,则指令标识符为( )。
6.在#include预处理指令中,不可以以包括( )。
7.在printf()函数调用的格局字符串中,若运用格局符为“%6.2f”,则规则对应输出的数据占用的字符方位个数为( )。
8.在printf()函数调用的格局字符串中,若运用格局符为“%6.2f”,则规则对应输出的数据中,其小数有些占用的字符方位个数为( )。
9.在printf()函数调用的格局字符串中,若运用格局符为“%6.2f”,则规则对应输出的数据中,其整数有些占用的字符方位个数为( )。
10.在scanf()函数调用的格局字符串中,若运用格局符为“%f”,则对应输入的数据类型为( )。
11.在scanf()函数调用的格局字符串中,若运用格局符为“%Lf”,则对应输入的数据类型为( )。
12.每个C程序文件在编译时能够呈现有严峻性错误,其对应的标识符号为( )。
13.在VC++环境下,为运转一个程序而树立的工作区文件的拓展名为( )。
1.在C语言中,作为标识符的榜首个字符能够是英文字母、数字或下划线字符。
2.在C语言中,标识符中的非首字符能够是英文字母、数字或下划线字符。
3.当需求在程序文件中引进用户界说的头文件时,运用的不是#include指令。
4.运用#include指令只能包括头文件,不能包括其他任何文件。
5.注释句子的内容只会呈现在源程序文件中,不会呈现在编译后而生成的方针代码文件中。
6.一条注释句子的最终有必要运用分号完毕。
7.源程序文件被编译成方针文件后,其方针文件中也存在有对应的注释内容。
8.源程序文件被编译成方针文件后,源程序文件中的注释句子依然存在。
9.在一条注释句子中,除了注释内容外,不需求运用任何特定的符号符。
10.多行注释句子的开端和完毕符号符能够交换运用。
11.在履行“printf("%5d",x);”句子时,其输出的x的值所占用的显现宽度将大于等于5个字符方位。
12.在履行“printf("%6d",x);”句子时,其输出的x的值所占用的显现宽度将小于6个字符方位。
13.在履行“printf("%8.2f",x);”句子时,其输出的x的值所占用的显现宽度将大于等于8个字符方位。
14.在“scanf("%d %d",&x,&y);”句子中,x和y变量均为整数类型。
15.在“scanf("%s",x);”句子中,x变量不是字符指针类型。
16.在“scanf("%d-%d=%d",&x,&y,&z);”句子中,有语法错误。
17.在C语言程序上机操作的过程中,衔接程序的操作过程之前是编译程序。
18.在C语言程序上机操作的过程中,需求对每个用户头文件进行独自的编译操作。
19.在C语言程序上机操作的过程中,不可以对用户头文件进行独自的编译操作。
int类型的长度为( )。
常数-4.25的数据类型为( )。
一个有符号字符类型的值域规模是( )。
字符串"Its\40\n"的长度为( )。
实数340.25对应的标准化浮点数为( )。
要使用const保存字界说整型常量ABC的值为10,则对应的界说句子为( )。
要使用#define指令界说ABC常量的值为100,则对应的指令格局为( )。
下列数值中最大值是( )。
鄙人面运算符中,优先级最高的是( )。
设有句子序列为“int a=12; a+=a*a;”,则履行完毕后,a的值为( )。
在C语言中,用于对比巨细的关系运算符的总数为( )。
x>0 && y
假定x是一个逻辑量,则(x && !x)和(x || !x)的值别离为( )。
假定x=4.6,则函数ceil(x)的值为( )。
表达式floor(2.3457*100+0.5)/100的值为( )。
常数3.26e4是双精度浮点数。
浮点数只要单精度表明,没有双精度表明。
定点数包含单精度定点数和双精度定点数两种。
界说符号常量只要一种方法,即是选用预处理指令#define的方法。
运用const句子界说一个符号常量时,则有必要对它一起进行初始化。
在一条变量界说句子中,界说的变量和赋给它的初值之间只能运用等号(=)。
假定x=5,则表达式2+x++的值为7。
表达式(int)14.6%5的值为0。
表达式x=x+1表明成增量表达式为x++。
假定x=5,则履行“a=(x?10:20);”句子后a的值为10。
逻辑表达式(a>b || b==5)的相反表达式为(a>b && b==5)。
在C语言中,求一个整数的肯定值的数学函数为abs(x)。
在C语言中,退出程序运转的系统函数为exit()。
若x的值为15,则履行“if(x>10) x++; else x--;”句子后,x的值为( )。
若x的值为-10,则履行“if(!x) x++; else x--;”句子后,x的值为( )。
若x的值为10,则履行“switch(x%3){case0: x++; case 1:x++; case 2: x++;}”句子后,x的值为( )。
若x的值为10,则履行“switch(x%3){case0: x++; break; case 1:x++; default: x++;}”句子后,x的值为( )。
若n的值为10,则履行“for(i=1;i
若n的值为10,则履行“for(i=0;; i++) if(i>n/3) break;”句子后,i的值为( )。
若n的值为10,则履行“for(i=1;i
若n的值为10,则履行“for(i=0;i
若n的值为10,则履行“while(n-->0)s+=n;”句子的过程中,循环体被履行的次数为( )。
若n的值为5,s的值为0,则履行“while(n-->0) s+=n;”句子后,s的值为( )。
鄙人列的句子中,有必要以分号作为完毕的句子是( )。
若n的值为5,s的值为0,则履行“do s+=n--; while(n>0);”句子后,s的值为( )。
要完毕任一种循环句子或switch句子的履行,则在其间运用的句子为( )。
在if句子中,有必要带有else子句,不能省掉它。
在for循环句子的头部,for后边括号内共有3个表达式方位。
for循环句子不可以被变换为while循环句子。
while循环句子中的循环体能够不会被履行。
while循环句子的循环体,只能是复合句子,不能是简略句子。
do-while循环句子中的循环体能够不会被履行。
do-while循环句子的循环体,只能是复合句子,不能是简略句子。
do-while循环句子是以循环体结束的。
break句子能够运用在switch句子中。
return句子中能够带有回来表达式。
continue只能运用在任一种循环句子的循环体中。
#include
void main() {
int a=5,b=8,c=6,d=15,x,y;
if(a>=b) x=a; else x=b;
if(c>=d) y=c; else y=d;
if(x>=y) printf("%d\n",x);
else printf("%d\n",y);
}

#include
void main() {
int x=5,y=8,z=12;
if(x>y && x>z) printf("%d\n",x);
else if(y>x && y>z) printf("%d\n",y);
else printf("%d\n",z);
}

#include
void main() {
int a=5,b=8,c;
if(3*a>2*b) c=2*a+3*b;
else if(a==b) c=a*a+b*b;
else c=a*b+3;
printf("c=%d\n",c);
}

#include
void main() {
int x=5,y=0;
switch(2*x-3) {
   case 4: y+=x;
   case 7: y+=2*x+1;
   case 10: y+=3*x;
}
printf("y=%d\n",y);
}

#include
void main() {
char ch;
int a,b,c;
scanf("%c",&ch);
scanf("%d %d",&a,&b);
switch(ch) {
   case '+': c=a+b; break;
   case '-': c=a-b; break;
   case '*': c=a*b; break;
   case '/': c=a/b; break;
   default: printf("Error!\n");
}
printf("%d%c%d=%d\n",a,ch,b,c);
}

#include
void main() {
int i,s=0;
for(i=16; i>0; i-=2)
   if(i%3==0 || i%4==0) s+=i;
printf("s=%d\n",s);
}
#include
void main() {
int i,x,y,s=0;
scanf("%d %d",&x,&y);
if(x>y) {i=x; x=y; y=i;}
for(i=x; i
   if(i%2==1) s+=i*i;
printf("s=%d\n",s);
}

#include
const int N=100;
void main() {
int a,b;
for(a=2; a
   for(b=2; b*b
    if(a%b==0) break;
   if(b*b>a) printf("%d ",a);
}
}

#include
void main() {
int i=0, s=0;
while(s
printf("s=%d\n",s);
}

#include
void main() {
int x,p=2;
scanf("%d",&x);
while(x>=p)
   if(x%p==0) {printf("%d=%d*%d\n",x,p,x/p); break;}
   else p++;
}

#include
void main() {
int x,y,a,p=1;
scanf("%d %d",&x,&y);
if(x
if(x%y==0) {printf("%d\n", y); return;}
a=2;
while(y>=a)
   if(x%a==0 && y%a==0) {x=x/a; y=y/a; p*=a;}
   else a++;
printf("%d\n",p);
}

#include
void main() {
int x=36,y=48,z;
do {z=x%y; x=y; y=z;} while(y>0);
printf("x=%d\n",x);
}

#include
void main() {
int x,i=0,s=0;
scanf("%d",&x);
do {i+=2; s+=i*i;}while(s
printf("n=%d\n",i-2);
}

#include
void main() {
int x=37,k=2;
do {if(x%k==0) break; k++;} while(k*k
if(k*k>x) printf("Yes!\n");
else printf("No!\n");
}

假定有一个元素类型为int的数组a[10],它所占用的存储空间的字节数为( )。
假定一维数组的界说为“char* a[8];”,则该数组所占用的存储空间的字节数为( )。
假定有一个界说句子为“int a[10]={3,4,2,8,6};”,则元素a[5]的值为( )。
鄙人面的一维数组界说句子中,有语法错误的是( )。
假定二维数组的界说句子为“int a[3][5];”,则该数组所含元素的个数为( )。
假定有一个界说句子为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( )。
关于一个长度为n的字符串,保留它至少需求占用的存储字节数为( )。
关于一个二维字符数组a[M][N],存储每个字符串的长度至多为( )。
若需求对比两个字符串的巨细,则选用的函数是( )。
一维数组元素带有两个下标。
关于二维数组元素,数组名后运用两对中括号。
在一维数组的界说句子中,给数组赋初值的有些是用一对花括号括起来的数据表。
在一维数组的界说句子中,数组名前为元素类型关键词。
在二维数组的界说句子中,数组名后带有两对圆括号。
假定二维数组的界说句子为“double a[M][N];”,则每个数组元素的列下标取值规模在1~N之间。
运用“typedef char BB[10];”句子界说标识符BB为富含10个元素的一维字符数组。
运用“typedef char BB[10][50];”句子界说标识符BB为富含10行50列共500个元素的二维字符数组类型。
一个二维字符数组a[10][20]中存储每个字符串的最大长度为19。
#include
void main() {
int a[8]={10,8,6,15,9,21,8,16};
int i,x=a[0];
for(i=1;i
   if(a>x) x=a;
printf("x=%d\n",x);
}

#include
void main() {
int a[8]={12,15,20,8,5,9,16,10};
int i,s[3]={0};
for(i=0; i
   s[a%3]+=a;
printf("%d %d %d\n",s[0],s[1],s[2]);
}

#include
void main() {
int a[3][3]={{3,8,6},{5,9,2},{8,5,12}};
int i,j,b[3]={0};
for(i=0;i
   for(j=0;j
    b[j]+=a[j];
for(j=0; j
}


#include
void main() {
int a[3][4]={{60,75,83,52},{76,94,88,35},{80,74,46,90}};
int i,j,x=a[0][0],y=-1;
for(i=0; i
   for(j=0; j
    if(a[j]>x) {y=x; x=a[j];}
    else if(a[j]>y) y=a[j];
printf("%d %d\n",x,y);
}

#include
#include
void main() {
char a[10],b[10],c[10];
int c1,c2,c3;
  scanf("%s %s %s",a,b,c);
c1=strlen(a); c2=strlen(b); c3=strlen(c);
if(c1>c2 && c1>c3) printf("%s ",a);
else if(c2>c1 && c2>c3) printf("%s ",b);
else printf("%s ",c);
}

#include
void main() {
char a[]="abcdbfbgacd";
int i=0,i1=0,i2=0,i3=0;
for(i=0; a!='\0'; i++) {
   switch(a) {
    case 'a': i1++; break;
    case 'b': i2++; break;
    case 'c': i3++; break;
   }
}
printf("%d %d %d %d\n",i1,i2,i3,i);
}

#include
void main() {
char a[]="12342345342356";
int i,c[7]={0};
for(i=0; a!='\0'; i++)
   c[a-48]++;//48为数字字符0的ASCII码
for(i=1; i
}

一个指针指向一个数据对象,它保留着该数据对象的地址,若数据对象为DataType类型,则该指针的类型为( )。
NULL是一个符号常量,一般作为空指针值,它的取值为( )。
若要把一个整型指针p变换为字符指针,则选用的强行变换表达式为( )。
若要界说整型指针p并初始指向x,则所运用的界说句子为( )。
假定p所指对象的值为25,p+1所指对象的值为42,则表达式*p++的值为( )。
假定p是一个指针变量,则该变量的地址表明为( )。
已知“char*s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则p应界说为( )。
假定a为一个数组名,则下面表达式中错误的是( )。
已知“charb[10]=”12345”, *p=b;”,则*(p+2)的值为( )。
已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大( )。
要使p指向二维整型数组a[10][20],p应界说为( )。
履行“int *p=malloc(sizeof(double)*2);”句子后得到的动态存储空间的字节数为( )。
使用动态存储分配创立具有10个字节的一维数组空间的正确句子是( )。
在界说指针变量的句子中,对指针变量不答应赋初值。
在界说指针变量的句子“int *p,pp;”中,p和pp具有一样的数据类型。
在句子“typedefint* inPointer;”中,把标识符inPointer界说为int*类型。
假定a是一个一维数组,则a+i的值与&a的值持平。
已知“int a[10], *p=a;”,则进行*p++运算是不答应的。
假定a是一个二维数组,则表达式*(a[j]+i)所对应的元素为a[j]。
假定a是一个二维数组,则数组名a的值和a[0]的值持平。
进举动态存储分配的calloc()函数带有一个参数。
用于开释动态存储空间的函数为free,调研它需求带有一个参数。
假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i个字节。
履行下面程序的输出成果为答复

#include
void main() {
int a[8];
int s1=0,s2=0,*p;
printf("请输入8个整数:");
for(p=a; p
for(p=a; p
   if(*p%2) s1+=*p;
   else s2+=*p;
}
printf("%d %d\n",s1,s2);
}

#include
void main() {
chara[5][10]={"12345","asde45","wer45t","zxc12","89uy78"};
char *p;
int i,c=0,k=0;
for(i=0; i
   p=&a[0];
   while(*p!='\0') {
    if(*p>='0' &&*p
    c++; p++;
   }
}
printf("%d %d\n",k,c);
}

#include
#include
void main() {
int i,n,*a;
do scanf("%d",&n); while(n
a=calloc(n,sizeof(int));
for(i=0; i
  if(i%2) a=2*n+i; else a=2*n-i;
for(i=0; i
}

#include
#include
void main() {
int i=0,j,n=10,*a;
a=calloc(10,sizeof(int));
while(i
   a=rand()%30+10;//每次得到一个随机整数
   for(j=0; j
    if(a==a[j]) break;
   if(i==j) i++;
}
for(i=0; i
}


鄙人面的函数声明句子中存在着语法错误的是( )。
假如一个函数界说仅答应为地点的程序文件调用,则应在该函数界说的最前面增加的关键词为( )。
假定一个函数界说为“extern char* f1(char*x){return x;}”,表明该函数效果域的关键词为( )。
假定一个函数的原型句子为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。
假定一个函数原型句子为“int f1(int a[],int n);”,与数组参数等价的表明为( )。
假定一个函数的参数阐明为const int a,则在函数体中不能进行的操作是( )。
在函数体中界说的变量具有( )。
在函数外界说的变量,若带有效果域关键词static,则它具有( )。
在函数体中界说一个静态变量时,选用的存储特点关键词为( )。
假定一个函数原型为“void ff(int a[],int n)”,则对应的函数指针类型为( )。
函数界说格局中的参数表被称为实参表。
函数界说格局中的参数表被称为形参表。
函数调用参数表中的每个实参能够是表达式。
关于标识为static特点的变量,若没有对它进行初始化,则默许的初值为0。
在函数体中界说一个变量时,若不选用任何存储特点关键词进行标识,则它为静态变量。
在C语言程序中,主函数也能够变成递归函数。
在C语言程序中,除主函数外的任何用户界说的函数都能够是递归函数。

void xk9(int x) {
char a[10];
int i=0,rem;
do {
   rem=x%8; x=x/8;
   a=48+rem;  //'0'字符的ASCII码为48
   i++;
} while(x!=0);
while(i>0) printf("%c",a[--i]);
printf("\n");
}

int wr1(int a[], int n, int x) {
int i;
for(i=0;i
   if(a==x) return 1;
return 0;
}

void wr4(int a[], int b[], int n) {
int i;
b[0]=b[1]=0;
for(i=0;i
   if(a%2==0) b[0]++; else b[1]++;
}

#include
int wr11(int a[], int n, int k) {
int i,c=0;
for(i=0;i
   if(a>=k) c++;
return c;
}
void main() {
int a[9]={9,5,7,12,4,8,15,10,15};
int c=wr11(a,9,8);
printf("%d\n",c);
}

#include
int c=15;
void main() {
int a=10, b=20;
{ int b=a+15; printf("%d ",a+b+c);}
printf("%d\n",a+b+c);
}

#include
void fn2(int* a, int* b) {
int x=*a;
*a=*b; *b=x;
}
void main() {
int x=15, y=26;
fn2(&x,&y);
printf("%d %d\n",x,y);
}

#include
int fn1() {
int x=0;
static int y=0;
x++; y++;
return x+y;
}
void main() {
int x1=fn1();
int x2=fn1();
printf("%d %d\n",x1, x2);
}

int ff3(int m, int n, int b) {
if(m
else if(m%b==0 && n%b==0) return b*ff3(m/b,n/b,b);
else return答复
;
}

编写一个函数,求出一维整型数组a[n]中一切元素的平方之和。
   int fun1(int a[], int n);

编写一个函数,别离求出一维整型数组a[n]中一切奇数元素的个数和一切偶数元素的个数,假定别离用c1和c2所指的对象保留。
   void fun2(int a[], int n, int* c1, int* c2);

编写一个非递归函数过程,求出两个天然数m和n的最大条约数。
   int fun5(int m, int n);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则