全国自考高级语言程序设计(一)精选试题及答案1
-
编写程序,用以建立某班级的学生档案信息,每个学生档案信息包括姓名邮编、电话。
-
输入三个国家的名称按字母顺序排序后输出。
#include< stdio.h>
#include< string.h> int main(void) { char *s[ ]={"China",'America,Russia}*p/*定义指针数组s和指针变p*/ int i,j,k=3; for(i=0;i for(j=0;j<______;j++) if( strcmp(s[j], s[j+1])>0) { p=s[j]; s[j]=______; [j+1]=p;s }
for(i=0; i
printf("%s\n",s[i]);
return 0;
}
-
用指针方法实现:输入8个整数,将其中的最大数和最后一个数交换,最小数和第1个数交换,然后将8个整数倒序输出。
-
下面的程序是使用结构体类型来计算复数m和n的差。
#include<stdio.h>
void main()
{
struct comp
{
float re; float im;
};
________m,n,z;
scanf("%f, %f, %f, %f", &m. re, &m. im, &n. re, &n. im);
z.re=________,z.im=________;
printf("%6.2f+%6. 2fi \n", z. re, z. im);
}
-
将文本文件r.txt中的字符逐一读出并显示在屏幕上。
#include< stdio.h>
#include< stdlib.h>
void main()
{
FILE*fp
char ch;
if((fp fopen("r. txt",______))==NULL)/*第一空*/
{
printf("can't open file! \n"); exit(0);
}
printf("读文件并显示:\n");
while(! feof(fp))
{
ch= fgetc(fp);
printf("%c",_____);/*第二空*/
}
printf("\n");
fclose(_______);/*第三空*/
}
-
struct stu
{
int num;
char name[10];
int age;
};
void py(struct stu *p)
{
printf("%s\n",( *p). name);
}
void main()
{
struct stu student [3]={{ 1001, "Sun",25}
{1002,"Ling",23},
{1003,"Shen",22}};
py(student+2)
}
-
#include< stdio.h>
void main()
{
int i;
char *country[ ]={"Brazil", "Russia", "India","China", "SouthAfrica"};
for(i=1;i<4;i+=2)
printf("%s\n", country[i]);
}
-
C盘中p1.c.txt文件的内容为: abcde。盘中p1.c.txt为空文档。
#include< stdio.h>
#include< stdlib.h>
void main()
{
FILE *f1, *f2;
int k;
if((f1= fopen("C: \\pl. c. txt", "r"))= =NULL)
{
printf("can not open file!\n");
exit(0)
}
if((f2= fopen "D: \\p1.c. txt", w")) =NULL)
{
printf("can not open file! \n");
exit(0);
}
for(k=1;k<=500;k++)
{
if( feof(f1))break;
fputc(fgetc(f1), f2);
}
printf("复制成功");
fclose(f1);
fclose(f2);
}
-
设 float[6][4];,则数组a中第一维下标的最大值是________。
-
#include< stdio.h>
#define MAX(x,y,z)(x >y? (x>z? x: z): ( y>z? y:z))
int main(void)
{
int a=3,b=4,c=5;
printf("%d,",MAX(a,b,c));
printf("%d,",MAX(a*b,b,b+a));
printf("%d \n", MAX(a, b+c, a*c));
return 0;
}
-
利用形参和实参结合传递结构体类型数据,分为_______和值传递两种方式。
-
无参宏定义的一般形式为_______。
-
设inta[2][5]={{8},{4}};,则数组元素_______的值为4。
-
机器语言和汇编语言都是面向机器的语言,也称为______。
-
C语言的转移语句包括goto语句、 break语句、______和 return语句。
-
C程序中调用字 isalpha符处理库函数(),则需要使用#include命令包含头文件______。
-
值传递是把实参的______传给被调用函数的形参。
-
取地址运算符是_______运算符。
-
设 typedef float REAL REAL=1;,表达式x/2的值是________。
-
C语言中规定,程序中各函数之间()
- A.既允许直接递归调用,也允许间接递归调用
- B.不允许直接递归调用,也不允许间接递归调用
- C.允许直接递归调用,不允许间接递归调用
- D.不允许直接递归调用,允许间接递归调用
-
为了判断两个字符串s1和s2是否相等,应当使用()
- A.if(s1 ==s2)
- B.if(s1 =s2)
- C.if(strcmp(s1, s2))
- D.if(strcmp(s1,s2)==0)
-
执行语句for(k=3;++k<5;k++)++k;后,变量k的值是()
- A.3
- B.5
- C.6
- D.7
-
运行下列程序后,输出结果是()
#include< stdio.h>
f(int x, int y, int *z)
{
return(*z=x*x+y*y);
}
void main()
{
int a=3;
f(f(1,2,&a),f(1,2,&a),&a);
printf("%d",a);
}
- A.9
- B.10
- C.50
- D.60
-
函数中定义的变量,其作用域是()
- A.本函数
- B.本程序的所有文件
- C.本文件的所有函数
- D.本文件的第一个函数
-
以下数组的初始化合法的是()
- A.char a[6] ="string"
- B.inta[5]={0,1,2,3,4,5};
- C.char a ="string";
- D.inta[]={0,1,2,3,4,5}
-
可以作为自定义标识符的是()
- A.2x
- B.break
- C.m-n
- D.m_n
-
设有数组定义语句“int a[50];”,下列数组元素引用中下标不越界的是()
- A.a[0]
- B.a[-1]
- C.a[50]
- D.a[51]
-
设int m=5;,语句 while(m= =0) printf("%d",m-=2);的循环体执行的次数是()
- A.0
- B.1
- C.2
- D.无限
-
指针变量指向一维数组后,可以进行的运算不包括()
- A.逻辑运算
- B.赋值运算
- C.算术运算
- D.关系运算
-
设int m=5,n,*p1,*p2;,下列程序段正确的是()
- A.p1 =&m; p2 =p1;
- B.p1=&m; p2=* p1;
- C.p1=&m;p2=&p1;
- D.p1=&m;p2=&n;*p1=p2;
-
变量的指针是指该变量的()
- A.名字
- B.一个标志
- C.地址
- D.值
-
设int m=5,*p;,使p指向变量m的语句是()
- A.m=p;
- B.p=m;
- C.*p=*m;
- D.p=&m;
-
以下不正确的描述是()
- A.break语句不能用于除循环语句和 switch句以外的任何其他语句
- B.在 switch语句中使用 break语句和 continue语句的作用相同
- C.在循环语句中使用 continue语句是为了结束本次循环而不是终止整个循环的执行
- D.在循环语句中使用 break语句是为了使流程跳出循环体提前结束循环
-
C程序的组成是()
- A.若干子程序
- B.循环体
- C.若干过程
- D.语句