1、 青蓝是06年4月的,深红色是06年9月的,蓝色是07年4月的,罗兰色是07年9月的, 绿色是08年4月,黑色是08年9月的, 浅橙色是09年3月的,深绿色是09年9月的, 粉色是2010年3月的, 表达式 (6)已有定义:char c=' ';int a=1,b;(此处c的初值为空格字符),执行b=!c&&a;后 b的值为【6】。【6】0 (7)改变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【7】。【7】3 (6)设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式【6】。 【6】a=a-(a+b)或(a=-b) (6)表达式(int
2、double)(5/2)+2.5)的值是【6】(6)4 (6)若有定义语句:int a=5;,则表达式:a++的值是 【6】 。(6)5 (7)若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为 【7】 。(7)1 (6)设x为int型变量,请写出一个关系表达式 【6】 ,用以判断x同时为3和7的倍数时,关系表达式的值为真。 (x%3==0)&&(x%7==0) 条件表达式 (8)下列程序运行后的输出结果是 【8】。(8)【8】1 main( ) { int x,a=1,b=2,c=3,d=4; x=(a
3、b; x=(x
4、10 11
main( )
{ int m=011,n=11;
printf("%d %d\n",+ +m,n+ +);
}
(6)执行下列程序时,输入1234567
5、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:
a=7
b=9
请完成输出语句:printf("【7】",a,b);。【7】a=%d\nb=%d
(7)若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】,x/y);补充完整,使其输出的计算结果形式为:x/y=11 (7)"x/y=%d"
(8)以下程序运行后的输出结果是 【8】 。(8)1 0
#include 6、0 7、CE
#include 8、5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{
p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");
}
(8)以下程序的输出结果是【8】。【8】1
#include 9、
#include 10、 int b[3]={0},i;
for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i];
for(i=0;i<3;i++) printf("%d",b[i]);
printf("\n");
}
程序运行后的输出结果是 【11】 。
While 语句
(9)有下列程序,若运行时从键盘输入:18,11 11、while(a>b)a-=b;
while(b>a)b-=a;
}
printf("%3d%3d\n",a,b);
}
(10)下列程序的功能是:将输入的正整数按逆序输出。例如:若输入135 则输出531。请
填空。(10)【10】n/=10 或n=n/10
#include 12、rintf("\n");
}
(8)下列程序的输出结果是【9】。(8)【9】54321
#include 13、){s=s+1.0/(k*(k+1) ); 【11】;}
printf("s=%f\n\n",s);
(7)当执行下列程序时,输入1234567890 14、c1);
c2=c1+32;
printf(“%c, %c\n”,c1,c2);
}
程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】。
(9)以下程序运行后的输出结果是【9】(9)s=0
#include 15、<回车> 输出结果为【10】(10)1AbCeDf2dF
#include 16、b/2;a+=b;
} while (b>1);
printf(“%d\n”,a);}
(8)有以下程序 7
#include 17、果是【9】。【9】#&
main()
{ int a=2,b=7,c=5;
switch(a>0)
{ case 1:switch(b<0)
{ case 1:printf("@");break;
case 2:printf("!");break;
}
case 0:switch(c==5)
{ case 0:printf("*");break;
case 1:printf("#");break;
case 2:printf("$");break;
}
default: printf("&");
}
printf("\n");
}
(9)以下程序的输出结果是【 18、9】。【9】9911
#include 19、dk=%d",m,k++);}
main()
{ int i=4;
fun(i++); printf("i=%dk=%d\n",i,k);
}9(为什么k=5,调用函数是单向)
(12)请将以下程序中的函数声明语句补充完整 (12)max(int a,int b)
#include 20、 return (a>b?a:b); }
(11)有以下程序 3025
#include 21、main()
{ fun(6);printf(“\n”); }
程序运行后的输出结果是 【15】 。
一维数组
(10)下列程序的运行结果是: 【10】 。(10)【10】11
fun(int t[ ],int n)
{ int i,m;
if(n= =1)return t[0];
else
if(n>=2){m=fun(t,n-1); return m;}
}
main( )
{ int a[ ]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
(14)执行下列程序的输出结果是【18】。(14)【 22、18】3 7 15
#include 23、序的输出结果是【12】。【12】4
#include 24、s[k]=k+l;
printf("%d\n",fun(s,4,N));
}
(11)有以下程序,程序执行后,输出结果是【11】(11)7777654321
#include 25、
#include 26、int s,i;
for(i=l;i<=5;i++)s=fun(i);
printf("%d\n",s);
}
二维数组
(8)下列程序的输出结果是 【8】 。(8)【8】30
main( )
{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i+ +) s+ =a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
(13)设有定义语句:int a[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是【13】。【13】0
(12)以下程序按下面指定 27、的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
#include 28、main()
{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i;j<3;j++) printf(“%d”,a[i][j]);
printf("\n");
}
程序运行后的输出结果是 【9】 。
字符
(9)当运行下列程序时,输入abcd,程序的输出结果是: 【9】 。(9)【9】a*b*c*d*
insert(char str[ ])
{ int i;
i=strlen(str);
while(i>0)
{ str[2*i]=str[i];str[2 29、i-1]='*';i--; }
printf("%s\n",str);
}
main( )
{ char str[40];
scanf("%s",str); insert(str);
}
(11)现有两个C 程序文件T18.c 和myfun.c 同在TC 系统目录(文件夹)下,其中T18.c 文件
如下:(11)【11】!knahT
#include 30、t n=0;
while((c=getchar( ))! ='\n') s[n+ +]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序T18 时,输入Thank!则输出结果是: 【11】 。
(11)下列程序的输出结果是【13】。(11)【13】efgh
#include 31、gh";
str=fun(str);
puts(str);
}
(10)下列程序的输出结果是【10】。【10】9
#include 32、d\n",sizeof(a),strlen(a));
}
(13)以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符
@作为输入结束标志。请填空。【13】n
#include 33、h>
#include 34、下列程序的输出结果是【18】。【18】40
#include 35、); printf("%d%d\n",*p,*q);
}
递归
(12)以下程序的输出结果是【13】。【13】13
#include 36、N*N*5; printf("%d\n",k);
}
结构体
(18)设有说明:
struct DATE{int year;int month;int day;};
请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、
month、day依次赋初值2006、10、1:【19】。【19】struct DATE d={2006,10,1};
(13)以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为
的记录的个数,存入变量n中,并作为函数值返回。请填空。【14】person[i].sex
#include 37、io.h>
#define N 3
typedef struct
{int num; char nam[10]; char sex;} SS;
int fun(SS person[])
{ int i,n=0;
for(i=0;i 38、ChangRong,1098.0
#include 39、person
{ int ID;char name[12];}p;
请将scanf(“%d”, 【12】 );语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。
(14)有以下程序 16
#include 40、
字符串
(13)有以下程序 How are you? How
#include 41、);
(14)以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
【15】"filea.dat","r"
#include 42、
{ FILE *fp;
if (((fp=fopen(“test.txt”,”r”))==______ 【13】_____))
printf(“未能打开文件!\n”);
else
printf(“文件打开成功!\n”);
函数功能
(7)下列程序用于判断a、b、c 能否构成三角形,若能,输出YES,否则输出NO。当给a、
b、c 输入三角形三条边长时,确定a、b、c 能构成三角形的条件是需同时满足三个条
件:a+b>c,a+c>b,b+c>a。请填空。(7)【7】(a+b>c)&&(a+c>b)&&(b+c> 43、a)
main( )
{ float a,b,c;
scanf("%f%f%f",&a,&b,&c);
if( 【7】 ) printf("YES\n"); /*a、b、c 能构成三角形*/
else printf("NO\n"); /*a、b、c 不能构成三角形*/
}
(12)下列函数fun 的功能是返回str 所指字符串中以形参c 中字符开头的后续字符串的首
地址,例如:str 所指字符串为:Hello!,c 中的字符为e,则函数返回字符串:ello!
的首地址。若str 所指字符串为空串或不包含c 中的字符,则函数返回NULL。请填
空。(12)【12】p+n 44、
char *fun(char *str,char c)
{ int n=0; char *p=str;
if(p! =NULL)
while(p[n]! =c&&p[n]! = '\0')n+ +;
if(p[n]= = '\0') return NULL;
return( 【12】 );
}
(13)下列程序的功能是:输出100 以内(不含100)能被3 整除且个位数为6 的所有整数,
请填空。(13)【13】i<10 【14】j%3!=0
main( )
{ int i,j;
for(i=0; 【13】 ;i+ +)
{ j=i*10+6;
if( 【1 45、4】 )continue;
printf("%d",j);
}
}
(14)下列isprime 函数的功能是判断形参a 是否为素数,是素数,函数返回1,
否则返回0。请填空(14)【15】return 0 【16】return 1
int isprime(int a)
{ int i;
for(i=2;i<=a/2;i+ +)
if(a%i= =0) 【15】 ;
【16】 ;
}
(15)下列程序的功能是输入任意整数给n 后,输出n 行由大写字母A 开始构成的三角形
字符阵列图形。例如,输入整数5 时(注意:n 不得大于10),程序运行结果如下:
A B C D 46、 E
F G H I
J K L
M N
O
请填空完成该程序。(15)【17】ch++ 【18】printf("\n");
main( )
{ int i,j,n; char ch='A';
scanf("%d",&n);
if(n<11)
{ for(i=1;i<=n;i+ +)
{ for(j=1; j<=n-i+1;j+ +)
{ printf("%2c",ch);
【17】 ;
}
【18】 ;
}
}
else printf("n is too large!\n")
printf("\n");
}
(16)下列程序中fun()函数的功能 47、是:构成一个如图所示的带头结点的单向链表,在结点
的数据域中放入了具有两个字符的字符串。Disp()函数的功能是显示输出该单链表中
所有结点中的字符串。请填空完成disp()函数。(16)【19】p!=NULL 【20】p->next
#include 48、
while( 【19】 )
{ printf("%s\n",P− >sub); p= 【20】 ; }
}
main( )
{ Node *hd;
hd=fun( ); disp(hd); printf("\n");
}
(11)下列程序中,fun()函数的功能是计算x2-2x+6,主函数中将调用fun()函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。(11)【11】x+8 【12】sin(x)
#include "math.h"
double fun(double x){return(x*x-2*x+6);}
49、
main( )
{ double x,y1,y2;
printf("Enter x: "); scanf("%lf",&x);
y1=fun( 【11】);
y2=fun( 【12】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
(12)下列程序的功能是将N 行N 列二维数组中每一行的元素进行排序,第0 行从小到大
排序,第1 行从大到小排序,第2 行从小到大排序,第3 行从大到小排序,例如:
请填空。(12)【13】j+1 【14】i%2==1
#define N 4
void sort(int a[ ][N])
{ int i, 50、j,k,t;
for(i=0;i






