2012年全国高等教育自学考试高级语言程序设计标准预测试卷(9)
-
采用递归调用的算法编写一个计算x的n次方的函数(不用写主函数调用)。
-
求出10到500之内能同时被3、7整除的数,并输出;然后求出其和值。
-
下列给定程序中,函数fun()的功能是:读人一个字符串(长度<20),将该字符串中的所有字符按ASCⅡ码降序排序后输出。
#include<stdio.h>
void fun(char t[])
{
char c;
int i,j;
for(i=0;______;i++)/*第一空*/
for(j=i+1;j<=strlen(t);j++)
if(______)/*第二空*/
{
c=t[j];
t[j]=t[i];
t[i]=c;
}
}
main()
{
char s[81];
print f("Please enter a char acter string:\n");
gets(s);
print f("\n\nBefore sorting:\n%s",s);
______;/*第三空*/
print f("\nAfter sorting decreasingly:\n%s\n",s);
}
-
下面程序段的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他以此类推。
#include
main(int x,int b[])
{int k=0,r,i;
scanf("%d",x);
do .
{r=x%2;
b[______]=r;/*第一空*/
x/=2;
}while(______);/*第二空*/
for(______);i>=0;i--)/*第三空*/
print f("%d",b[i]);
}
-
下面程序是将字符串P中的所有字符复制到字符串b中,要求每复制三个字符后插入一个空格。
#include<stdio.h>
void cp(char *P,char *b)
{int i,k=0;
while(*p)
{i=0;
while(______)/*第一空*/
{b[k]=*p;
k++;p++;i++;
}
if(*p)
{______;/*第二空*/
}
}
______;/*第三空*/
}
main()
{char a[20],b[20];
gets(a);
cp(a,b);
puts(b);
print f("\n");
}
-
#include<stdio.h>
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)(b+=3;
continue;
}
b-=5;
}
print f("%d\n",a);
}
-
#include<stdio.h>
main()
{
int a[3][2]={{1,2},{3,4},{5,6}),i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<2;j++)
s+=a[i][j];
print f("%d\n",s);
}
-
#include<stdio.h>
main()
{
int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:print f("%d",i);
case 2:print f("%d",i);
default:print f("%d",i);
}
print f("\n");
}
-
表达式"sizeof(double)"的值的类型是______。
-
#include
long fun(int n)
{long s;
if(n<=2)s=2;
else s=n+fun(n-1);
print f("%0d\t",s);
return s;
}
main()
{
fun(5);
print f("\n");
}
-
以下由for语句构成的循环执行了______次。
#itielude<stdio.h>
#define N 2
#deftne M N+1
#define NUM(M+1)*N/2
main()
{int i,n=0;
for(i=1;i<=NUM;i++)
{n++;print f("%d",n);}
print f("\n");}
-
以下程序的输出结果是______。
#include<stdio.h>
main()
{int i;
for(i=1;i<=5;i++)(if(i%2)print f("*");
else continue;
print f("#");
}
print f("$\n");
}
-
以下程序的输出结果是______。
#include<stdio.h>
main()
{int a,b,d=241;
a=d/100%9;/*"/"和"%"的优先级相同,先进行"/运算"*/
b=(-1)&&(-1;/*b所获得的是逻辑值。*/
print f("%d,%d\n",a,b);
}
-
设int a,b,c;,则执行a=(b=3,c=4,a=5,b=8);之后变量a的值是______。
-
外部静态变量的作用域是______。
-
函数调用时,若实参为一个确定的值,则函数参数的传递方式是______。
-
设int a[2][3]={2,4,6,8,10,12);,则数组元素a[1][0]的值是______。
-
可以将被调函数中获得的值返回主调函数的语句是______。
-
设int x=2,y=1;则表达式x---y的值是______。
-
若已定义:int a[9],*p=a;并在以后的语句中未改变P的值,不能表示a[1]地址的表达式是( )
- A.p+1
- B.a+1
- C.&a[1]
- D.*p[1]
-
若有以下定义和语句:
doubler=99,*p=&r;
*p=r;
则以下正确的叙述是( )
- A.以上两处的*p含义相同,都说明给指针变量p赋值
- B.在"double r=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元
- C.语句"*p=r;"把变量r的值赋给指针变量p
- D.语句"*p=r;"取变量r的值放回r中
-
C语言早期规定建立文件缓冲区采用的形式是( )
- A.缓冲文件系统
- B.非缓冲文件系统
- C.分页文件系统
- D.A&B
-
以下说法中正确的是( )
- A.#define和print f都是C语句
- B.#define是C语句,而print f不是
- C.print f是C语句,但#define不是
- D.#define和print f都不是C语句
-
当C的值不为0时,在下列选项中能正确将C的值赋给变量a和b的是( )
- A.c=a=b
- B.(a=c)||(b=c)
- C.(a=c)&&(b=c)
- D.a=c=b
-
以下程序的输出结果是( )
main()
{char a[10]={"123456789"),*P;
int 1;
i=8;
p=a+i;
print f("%s\n",p-3);
}
- A.5678
- B.6789
- C.7890
- D.不确定
-
以下程序的输出结果是(已知字母a的ASCⅡ值比字母A的ASCⅡ值大32)( )
main()
{int i;
for(i='A';i<'I';i++,i++)
print f("%c",i+36);
}
- A.DEGIK
- B.egik
- C.EGIK
- D.degik
-
常用的数学处理类系统函数所在的头文件是( )
- A.math.h
- B.ctype.h
- C.dos.h
- D.stdlib.h
-
设int a=6;,则执行b=a<<1;语句后b的值是( )
- A.3
- B.6
- C.9
- D.12
-
表达式8&2|6||3的值是( )
- A.7
- B.5
- C.3
- D.1
-
在下列函数的参数传递方式中,可以改变实参值的参数传递方式是( )
- A.值传递
- B.地址传递
- C.返回值传递
- D.A、B和C
-
下列关于函数的递归调用描述不正确的是( )
- A.函数的递归调用就是函数对自身的调用
- B.向下的递归调用过程被称为是"递归过程"
- C.向上携带返回表达式的过程被称为是"回溯过程"
- D.递归过程必须解决的问题有三个
-
设有数组定义:char array[]="Asia";则数组array[]所占用的空间为( )
- A.4个字节
- B.5个字节
- C.6个字节
- D.7个字节
-
以下是对二维数组的正确说明的是( )
- A.int [3][]
- B.float a(3,4)
- C.double a[1][4]
- D.float a(3)(4)
-
下列关于C语言字符数组描述正确的是( )
- A.字符数组可以存放字符串
- B.字符数组的下标是从0开始的
- C.字符数组不能输出字符串
- D.字符数组可以没有'\0'