1.若要说明一个类型名STP,使得定义语句STP s;等价于char *s;, 以下选项中正的是( )。
A.typedef STP char *s
B.typedef *char STP
C.typedef STP *char
Dhypeder char *STP
分析:(1)先按定义变量的方法写出定义体(char *s;)
②将变量名换成新类型名(将s换成STP )
(3)在最前面加上typedef(typedef char *STP )
④用新类型名去定义变量STP s: 与char *s;等价
2.下面的函数调用语句中func函数的实参个数是
func (f2 (vl,v2) ,(v3,v4,v5) ,(v6,max (v7,v8)));
A.3
B.5
C.7
D.8
3.下面程序的的运行结果是()
a=1;b= 2;c =2:
while(a<b<c)
{
t= a;a =b;b=t;c--;}
printf( "%d,%d,%d",a,b,c);
A.1.2,0
B.2,1.0
C.1,2,1
D。2,1,1
4.下面程序的运行结果是(
#include<stdio.h>
#include<string.h>
void main( )
{
char a[80]="AB",b[80]="LMNP";
int i=0;
strcat(a,b);
while(a[i++]!='0')
b[i]=a[i];
puts(b);
A. LB
B. ABLMNP,
c. AB
D. LBLMNP
5..若有以下程序段:
。。。。。。。。
int a[]= {4,0,2,3,1};
int i,j,t;
for(i=1;i<5;i++)
{
t= a[i]; j=i-1;
while(j> =0&&t>a[j])
{
a[j+1]-a[j];j--;
}
a[ j+1]=t:
}
则该程序段的功能是()。
A.对数组a进行插入排序(升序)
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序升序)
D.对数组a进行选择排序(降序)
分析:插入排序基本思想:将第i趟排序中的第i个元素插入到一个排好序的子序列中,若是由小到大排序,则将元素temp =a[i]插入到子序列a[0】,a[1】。。。a[i-1]中,
将比a[i]元素大的数往后移动。直到找到插入的位置
#include <stdio.h>
void InsertSort(int a[],int n)
{
int i,j;
int temp;
for(i=l;i<n;i++) //执行n-1躺插入
{
temp=a[i]; //将要插入的数暂存到temp
j=i-1;
while(j>=0 && temp<a[j])//找出temp的插入位置
a[j+1]-=j--1; //将 a[j]后移,再将j减1
a[j+1]=temp; //将temp插入指定位置
}
6.以下叙述中错误的是( )
A.在程序中凡是以"#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C. #define MAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的。
分析:编译预处理就是在编译程序对C源程序进行编译前,由编译预处理程序对这些编译预处理指令进行处理的过程
答案:CAA DBD
2.看,分了几个
3.while(a《b《c) 因为a《b,为1,1《c,所以为t=1,a=2,b=1,c=1
循环在执行,a》b为0,0《c,所以为t=2,a=1,b=2,c=0,
在循环执行,a《b为1,1》c,不合法
6.编译预处理就是在编译程序对C源程序进行编译前
7.以下程序,程序运行后的输出结果是
#include <stdio.h>
main()
{
int I;
for(i=l;i<= 5;i++)
switch(i%5)
{
case 0:printf("* ");break;
case 1:printf("#");break;
default :printf("\n");
case 2:printf("&");
}}
答案:#&
&
&*
8.有以下程序,程序运行后的输出结果是
#include< stdio.h>
main()
{
int а[6][6],i,j;
for(i=1;i<6;i++)
for(j=1;j<6;j++)
a[i][j]=(i/j)*(j/i);
for(i=1;i<6;i++)
{
for(j=1;j<6;j++)
printf("%2d",a[i][j]);
printf("\n");
}}
答案:10000
01000
00100
00010
00001
分析:i/j或j/i除不尽为零
9.
对某一正数的值保留2位小数,并对第三位进行四舍五入。
# include < stdio . h >
double fun ( float h )
{
int i ;
i =( int )( h *1000)%10;
if ( i >=5)
return ( int )( h *100+1)/100.0;
else
return ( int )( h *100)/100.0;
}
void main ()
{
float m ;
printf (" Enter m :");
scanf ("% f ",& m );
printf (" nThe result is %8.2fn", fun ( m ));
}
10.
编写函数实现找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回,编写主函数并测试。
# include < stdio . h >
int fun ( int n )
{
int i , k ;
for ( i = n +1;;1++)
{
for ( k =2; k < i ; k ++)
if ( i % k ==0)
break ;
if ( k == i )
return ( i );
}
void main ()
{
int m ;
printf (" Enter m :");
scanf ("% d ",& m );..
printf (" nThe result is % d ' n ", fun ( m ));