(41) 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序
void sort(int a[],int n)
{int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,
D)1,2,10,9,8,7,6,5,4,3,
正确答案: C
(42) 以下程序的运行结果是
#include "stdio.h"
main()
{struct date
{int year,month,day;}today;
printf("%d\n",sizeof(struct date));
}
A)6
B)8
C)10
D)12
正确答案: A
(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是
A)a,point,*&a
B)&*a,&a,*point
C)*&point,*point,&a
D)&a,&*point,point
正确答案: D
(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是
A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定
正确答案: B
(45)已定义以下函数
fun(char *p2, char *p1)
{
while((*p2=*p1)!='\0'){p1++;p2++;}
}
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有'\0'
正确答案: A
(46)若执行下述程序时,若从键盘输入6和8时,结果为
main()
{int a,b,s;
scanf("%d%d",&a,&b);
s=a
if(a<b)
s=b;
s*=s;
printf("%d",s);
}
A)36
B)64
C)48
D)以上都不对
正确答案: B
(47)fscanf函数的正确调用形式是
A)fscanf(fp,格式字符串,输出表列);
B)fscanf(格式字符串,输出表列,fp);
C)fscanf(格式字符串,文件指针,输出表列);
D)fscanf(文件指针,格式字符串,输入表列);
正确答案: D
(48)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
正确答案: D
(49)有以下程序
void ss(char *s,char t)
{while(*s)
{if(*s= =t)*s=t-'a'+'A';
s++;
}
}
main()
{char str1[100]="abcddfefdbd",c='d';
ss(str1,c); printf("%s\n",str1);
}
程序运行后的输出结果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
正确答案: B
(50)若以下定义:
struct link
{int data;
struct link *next;
} a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:
指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:
A)a.next=c; c.next=b;
B)p.next=q; q.next=p.next;
C)p->next=&c; q->next=p->next;
D)(*p).next=q; (*q).next=&b;
正确答案: D
二 、填空题
(1)算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。
正确答案: 1.(有穷性)
(2)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 【2】 。
正确答案: 1.(log2n)
(3)在面向对象的程序设计中,类描述的是具有相似性质的一组 【3】 。
正确答案: 1.(对象)
(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 【4】 。
正确答案: 1.(软件生命周期)
(5)数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 3种。
正确答案: 1.(关系模型)
(6)设y是int型,请写出y为奇数的关系表达式 【6】 。
正确答案: 1.((y%2)==1或(y%2)!=0)
(7)设int a=5,b=6,表达式(++a==b--)?++a:--b的值是【7】 。
正确答案: 1.(7)
(8)下列程序的输出结果是【8】。
maim ()
{char b []="Hello you";
b[5]=0;
printf ("%s\n",b);}
正确答案: 1.(Hello)
(9)当调用函数时,实参是一个数组名,则向函数传递的是【9】。
正确答案: 1.(数组的首地址)
(10)以下程序的输出结果是【10】。
int a=1234;
printf ("%2d\n",a);
正确答案: 1.(1234)
(11) 用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
正确答案: 1.(源程序)
(12) 以下程序的输出结果是【12】。
main()
{int a=0;
a+=(a=8);
printf("%d\n",a);}
正确答案: 1.(16)
(13)函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
void fun( float *sn, int n)
{ float s=0.0, w, f=-1.0;
int i=0;
for(i=0; i<=n; i++)
{ f=【13】* f;
w=f/(2*i+1);
s+=w; }
【14】=s;}
正确答案: 1.(-1) 2.(*sn)
(14)函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。
例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。
#include <conio.h>
#include <stdio.h>
float fun (int m, int n)
{ int i;
double p=1.0;
for(i=1;i<=m;i++)【15】;
for(i=1;i<=n;i++)【16】;
for(i=1;i<=m-n;i++)p=p/i;
return p;}
main ()
{ clrscr();
printf ("p=%f\n",fun (12,8));}
正确答案: 1.(p=p*i) 2.(p=p/i)
(15)该程序运行的结果是【17】。
#include<conio.h>
#include<stdio.h>
#define M 100
void fun(int m, int *a, int *n)
{ int i,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)
a[j++]=i;
*n=j;}
main()
{ int aa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)printf("\n");
else printf("%4d",aa[k]);
printf("\n");}
正确答案: 1.(7)
(16)下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符1,则输出3,请填空。
#include <conio.h>
#include <stdio.h>
#define M 81
int fun(char *ss, char c)
{ int i=0;
for(; 【18】;ss++)
if(*ss==c)i++;
return i;}
main()
{ char a[M], ch;
clrscr();
printf("\nPlease enter a string: "); gets(a);
printf("\nPlease enter a char: "); ch=getchar();
printf("\nThe number of the char is: %d\n", fun(a,ch));}
正确答案: 1.(*ss!= '\0')
(17)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
#include "stdio.h"
FILE *fp;
{ char ch;
if((fp=fopen(【19】))==NULL)exit(0);
while((ch=getchar( ))!='@')fputc (ch,fp);
fclose(fp);}正确答案: 1.("bi.dat","w"或"bi.dat","w+")
(18)设有如下宏定义
#define MYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通过宏调用实现变量a,b内容交换,请填空。
float a=5,b=16,c;
MYSWAP(【20】,a,b);
正确答案: 1.(c)