【填空题】下面函数的功能是将一个整数字符串转换为一个整数,例如:”-1234”转换为1234,请填(3)空使程序完整。 int chnum(char *p) { int num=0,k,len,j ; len = strlen(p) ; for ( ; ; p++) { k=*p-‘0’; j=(--len) ; while (j--!=0) k=k*10 ; num = num + k ; } return (num); }
【单选题】以下正确的说明语句是____________。
【单选题】下面程序的输出是 ( ) main() {int x=3,y=6,a=0; while (x++!=(y-=1)) { a+=1; if (y
【填空题】以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”,否则输出“no”。请填空。 #include “stdio.h” void main() { int k; printf( “Enter a int number:”); scanf( “%d”&k>); if(____________) printf( “yes\n”); else printf( “no\n”); } (3.0分)
【单选题】下面程序的运行结果是 。 main ( ) { int x[5]={2,4,6,8,10}, *p, **pp ; p=x , pp = &p ; printf(“%d”,*(p++)); printf(“%3d”,**pp); }
【单选题】下面的程序运行结果是( ) main() { int x=3,y=0,z=0; if(x=y+z) printf( “****”); else printf( “####”); } (1.1分)
【填空题】下面程序的功能是计算 1-3+5-7+ ...... -99+101 的值。 main() { int i,t=1,s=0 ; for(i=1 ;i<=101;i+=2) { t=__________; s=s+t; t=-t; } printf("%d\n",s) ; } (3.0分)
【单选题】若有定义:int a[5],*p=a;则对a数组元素的正确引用是___________ 。
【单选题】若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是___________ 。
【判断题】switch语句中,可以不使用break语句;( )(2.0分)
【填空题】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin ; scanf("%f",&x) ; amax=x ; amin=x ; while(x>=0) { if(x>amax) amax=x ; if(________) amin=x ; scanf("%f",&x) ; } printf("\namax=%f\namin=%f\n",amax,amin) ; } (3.0分)
【填空题】写出下面程序的运行结果_______。 fun (char *s) { char *p=s; while (*p) p++ ; return (p-s) ; } main ( ) { char *a=”abcdef” ; printf(“%d\n”,fun(a)) ; }
【填空题】以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。请填空。 void main() { int n,i,j; i=0;j=0; printf( “Enter INT numbers,with 0 to end\n”); scanf( “%d”,&n); while (___________) { if (n>0) i=i++; if (n<0) j=j++; scanf( “%d”,&n); } printf( “i=%4d j=%4d\n”,i,j); } (3.0分)
【单选题】以下程序的输出结果是( )。 #include void main() { int **k,*a,b=100; a=&b;k=&a; printf(“%d\n”,**k); }
【单选题】若要对a进行自减运算,则a应有下面说明 。
【单选题】p指向的a[1],则执行语句*p++;后,*p的值是( )。 a[0] a[1] a[2] a[3] a[4] 10 20 30 40 50
【判断题】continue语句只能用于循环语句中。( )(2.0分)
【判断题】Break语句只能用于循环结构中。( )(2.0分)
【判断题】在for循环中使用break语句的目的是使流程跳出循环体,终止当前循环( )(2.0分)
【单选题】以下程序的输出结果是( ) #include void main() {printf(“%d\n”,NULL);}
【单选题】若有定义:int a[5],*p=a;则对a数组元素地址的正确引用是 ______ 。
【填空题】下面函数的功能是从输入的十个字符串中找出最长的那个串,请填(2)空使程序完整。 void fun(char str[10][81],char **sp) { int i; *sp =str[0]; for (i=1; i<10; i++) if (strlen (*sp)
【单选题】设有定义:char *cc[2]={“1234”,”5678”};则正确的叙述是 ________ 。
【单选题】读程序 #include”stdio.h” main() { int a; float b,c; scanf("%2d%3f%4f",&a,&b,&c); printf("\na=%d,b=%f,c=%f\n",a,b,c); } 若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是( ) (1.1分)
【单选题】47、以下与库函数strcpy(char *p1,char *p2)功能不相等的程序段是 。
【判断题】在switch-case语句中,不是每个case后都要使用break语句。( )(2.0分)
【填空题】下列程序功能是求数组中主对角线元素之和,请补充完成 main() { int a[3][3],i,j,s=0; for( i=0;i<3;i++ ) for( j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) for( j=0;j<3;j++) if(_______) s+=a[i][j]; printf("s=%d\n",s); } (3.0分)
【单选题】以下程序的输出结果是( ) main() { int x=10,y=10,i; for(i=0;x>8;y=++i) printf( “%d %d”,x--,y); } (1.1分)
【单选题】以下程序运行后,输出结果是( )。 #include ss(char *s) { char *p=s; while(*p) p++; return(p-s); } main() { char *a="abded"; int i; i=ss(a); printf("%d\n",i); }
【判断题】while语句中的条件为0时,就结束该循环。( )(2.0分)
【判断题】do-while语句中的条件为非0时,就结束该循环。( )(2.0分)
【单选题】若已定义char s[10];则在下面表达式中不表示s[1]的地址是__________ 。
【判断题】在循环体内使用break语句或continue语句的作用相同。( )(2.0分)
【单选题】若有语句:int *p,a=4;和p=&a;下面均代表地址的一组选项是 _________ 。
【填空题】若有定义:char ch;若已定义char *p;,使指针p指向变量ch的赋值语句是________。
【填空题】下面程序的功能是:输入一个字符,如果它是一个大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母,其它字符不变,请将程序补充完整: main() { char ch; scanf( “%c”,&ch); if (ch>= ’A’ && ch <=’Z’) ch=ch+32; else if (____________ ) ch=ch-32 ; printf( “%c”,ch); } (3.0分)
【判断题】for语句中,三个表达式都可以省略;( )(2.0分)
【单选题】若有定义:int a[2][3];则对a数组的第i行第j列元素地址的正确引用是 _________ 。
【填空题】充下列程序,找出100—200之间的全部素数 # include “math.h” main() { int m,k,i,n=0; for (m=101;m<=200;m=m+2) { k=sqrt(m); for ( i=2; i<=k; i++ ) if ( ___________ ) break; if ( i>k ) { printf( “%d”,m); n=n+1; } if (n%10==0) printf( “\n”); } printf( “\n”); } (3.0分)
【单选题】以下程序的输出结果是( ) #include void main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\n”,n); }
【填空题】下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。 #include “stdio.h” void main() { int i,s,k,count=0; for(i=100;i<=1000;i++) { s=0; k=i; while(k) { s=s+k%10; k=_________; } if(s==5)count++; } printf( “%d”,count); } (3.0分)
【判断题】未给变量赋初值,只是运行结果不正确,不会有其他不良影响。( )(2.0分)
【填空题】若有定义:char ch;使指针p指向变量ch的定义语句是________ 。
【单选题】以下与int *q[5];等价的定义语句是__________ 。
【单选题】下面程序段的运行结果是 。 char a[ ]=”language” , *p ; p=a ; while (*p!=’u’) { printf(“%c”,*p-32); p++ ; }
【填空题】程序打印如下形式的图形,请填空 * * * * * * * * * * main() { for(int i=1;i<=4;i++) { for(int j=1; j<=i ;j++) printf( ”*” ); printf( ___________ ); } } (3.0分)
【填空题】以下程序可判断输入的一个字符是否为小写字母,如果是,则转换为对应的大写字母并输出;否则,就原样输出。请填空。 #include “stdio.h” void main() { char k; printf( “Enter a character here:”); scanf( “%c”,&k); if(k>= ’a’ && k =’z’) printf( “%c\n”,________); else printf( “%c\n”,k); } (3.0分)
【填空题】以下程序用“辗转相除法”来求出两个正整数的最大公约数。请填空。若两个数分别放在m和n中,求最大公约数的算法如下: (1) 将两数中最大的那个放在m中,小的放在n中。 (2) 求出m被n除后的余数r。 (3) 若余数为0则执行步骤(7);否则执行步骤(4)。 (4) 把除数作为新的被除数;把余数作为新的除数。 (5) 求出新的余数r。 (6) 重复步骤(3)到(5)。 (7) 输出n,n即为最大公约数。 void main() { int r,m,n; printf( “Enter m,n:”); scanf( “%d%d”,&m,&n); printf( “m=%d n=%d\n”,m,n); if (m
【填空题】请将用户输入的x,y,z三个整数按照从小到大的顺序排列 main() { int x,y,z,t; scanf("%d,%d,%d",&x,&y,&z); if(x>y) { t=y;y=x;x=t;} if(x>z) {t=z;z=x;x=t;} if(_______) {t=y;y=z;z=t;} printf("small to big: %d,%d,%d\n",x,y,z); } (3.0分)
【单选题】执行下面的程序后,a的值为_____ main() { int a,b; for (a=1,b=1;a<100;a++) { if (b>=20) break; if (b%3==1) { b+=3; continue; } b-=5; } } (1.1分)