{ int x,y; char c;
for (x=0,y=strlen(s)-1; x A)ihgfedcba B)abcdefghi C)abcdedcba D)ihgfefghi (28)设有如下函数定义,则输出结果为__D____。 char *fun(char *str) { char *p=str; while(*p) {if(*p>'d')continue; p++; } return p; } main() { printf(\ } A)welcome B)come! C)w D)程序进入死循环 (29)设 p1 和 p2 是指向同一个 int 型一维数组的指针变量,k 为 int 型变量,则下列不能正确执行的语句是__B____。 A)k=*p1+*p2; B)p2=k; C)p1=p2; D)k=*p1*(*p2); (30)以下程序的输出结果是___C___。 # define f(x) x*x main( ) { int a=6,b=2,c; c=f(a)/f(b); printf(\ } A)9 B)6 C)36 D)18 (31)若有以下定义: char s[20]=\ 则不能代表字符 o 的表达式是__A____。 A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps (32)以下程序的输出结果是__A____。 main( ) { int i; for(i=1;i<6;i++) { if(i%2){printf(\ printf(\ } printf(\ } A)# * # * # B)# # # # # C)* * * * * D)* # * # * (33)有如下程序 main( ) { int n = 9; while(n>6) { n--; printf(\ } } 该程序的输出结果是__B____。 A)987 B)876 C)8765 D)9876 (34)下列程序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是______。 #include int i=9,a,b[10]={0}; scanf(\ sub(a,b); for(;i>=0;i--)printf(\ } sub (int c,int d[]) { int e,i=0; while(c!=0) {e=c%8; d[i]=e; __C_____; i++; } return; } A)c=e/8 B)c=c%8 C)c=c/8 D)c=e%8 (35)执行下面的程序段 int x=35; char z='A'; int B; B=((x&15)&&(z<'a') ); 后,B 的值为__B____。 A)0 B)1 C)2 D)3 (36)若有以下定义: int t[3][2]; 能正确表示 t 数组元素地址的表达式是__C____。 A)&t[3][2] B)t[3] C)t[1] D)*t[2] 二、填空题 (1)若由以下定义,则不移动指针p,且通过指针p引用值为 98 的数组元素的表达式是 【_*(p+5)__或 p[5]___】 。 int w[10] = {23,54,10,33,47,98,72,80,61},*p = w; (2)以下程序的输出结果是 【_____7_______】 。 #define MAX(x,y) (x)>(y)?(x):(y) main( ) { int a = 5, b = 2,c = 3, d = 3, t; t = MAX(a + b, c + d)*10; printf(\ } (3)以下程序的输出结果是 【______0___】 。 main() { unsigned short a=65536; int b; printf(\ } (4)若已经定义int a=25,b=14,c=19;,以下三目运算符(?:)所构成的语句的执行结果是 【_a=26,b=14,c=19__】 。 a++<=2&&b--<=2&&c++? printf(\ a=%d,b=%d,c=%d\\n\ (5)下面的 if 语句与 y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,请补充完整。 if( __x<10__ ) if( __x>=1__)y=2*x-1; else y=x; else y=3*x-11; (6)函数 void fun(float *sn,int n)的功能是:根据以下公式计算 S,计算结果通过形参指针sn 传回;n 通过形参传入,n 的值大于等于 0。请补全程序。 S=1-1/3+1/5-1/7+...+1/(2n+1) void fun(float *sn,int n) { float s=0.0,w,f=-1.0; int i=0; for(i=0;i<=n;i++) { f= __-1__ *f; w=f/(2*i+1); s+=w; } *sn___ =s; } (7)下面的函数 strcat(str1,str2)实现将字符串 str2 拼接到字符串 str1 后面的功能。请填空使之完整。 char *strcat(char *str1,char *str2) { char *t=str1; while( __*str1_ ) str1++; while( *str1++=*str2 ++ ); return(t);} (8)以下函数 fun 用于求两个整数 a 和 b 的最大公约数。 fun(int a,int b) {int i,j,m,n; if(a>b) {m=a;a=b; 【__b=m____】 ;} i=a;j=b; while((n= __j%i_ )!=0) {j=i;i= __n_ ;} return(i); }