以下程序的输出结果是_____。
int ast(int x, int y, int *cp, int *dp)
{ *cp = x + y;
*dp = x - y;
}
main()
{ int a, b, c, d;
a = 4;
b = 3;
ast(a, b, &c, &d);
printf("%d %d\n", c, d);
}
以下程序的输出结果是_____。
main()
{ int a[] = {2, 4, 6}, *prt = &a[ 0], x = 8, y, z;
for(y = 0; y < 3; y++)
z = (*(prt + y) < x ) ? *(prt + y) : x;
printf("%d\n", z);
}
执行以下程序后的输出结果是_____。
main()
{
int a, b, c, d, i, j, k;
a = 10;
b =
c =
d = 5; i = j = k = 0;
for( ; a > b; ++b)
i++;
while( a > ++c )
j++;
do
k++;
while(a > d++);
printf("i = %d, j = %d, k = %d\n", i, j, k);
}
执行以下程序段后, s的值是_____
int a[]={5,3,7,2,1,5,3,10},s=0,k;
for(k=0;k<8;k+=2)
s+=*(a+k);
若变量已正确定义,以下语句段的输出结果是_____。
x = 0; y = 2; z = 3;
switch(x)
{ case 0: switch( y == 2)
{ case 1: printf("*"); break;
case 2: printf("%"); break;
}
case 1: switch( z )
{ case 1: printf("$");
case 2: printf("*"); break;
default : printf("#");
}
}
(20)若程序执行时的输入数据是"2473",则下述程序的输出结果是
#include
void main()
{ int cs;
while((cs=getchar())!= '\n')
{switch(cs-'2')
{ case 0:
case 1: putchar(cs+4);
case 2: putchar(cs+4);
break;
case 3: putchar(cs+3); default: putchar(cs+2); } } }
A)668977
B)668966
C)6677877
D)6688766
(21)以下程序的输出结果是
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5; }
}printf("%d\n",a);}
A)31 B)13 C)10 D)20
(38)以下程序的输出结果是
int f()
{ static int i=0;
int s=1;
s+=i; i++;
return s; }
main()
{ int i,a=0;
for(i=0;i<5;i++)a+=f();
printf("%d\n",a);}
A)20 B)24 C)25 D)15
(39)下列程序的输出结果是
#include "stdio.h"
#define M(x,y) x%y
main()
{ int a,m=12,n=100;
a=M(n,m);
printf("%d\n",a--);}
A)2 B)3 C)4 D)5
若从键盘输入58,则以下程序输出的结果是_____。
main()
{
int a;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
阅读下面程序,程序执行后的输出结果是_____。
#include "stdio.h"
main()
{
int x,y,z;
x = 1; y = 2; z = 3;
if(x>y)
if(x>z)printf("%d",x);
else printf("%d",y);
printf("%d",z);
}
C语言中调用_____函数来打开文件.
调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 以"只读"方式打开需填入_____. 以下程序的输出结果是:
main( )
{ char a[2][5]={"3769","5482"};
int i,j,s=0;
for ( i = 0; i < 2; i++ )
for ( j = 0; a[i][j]>'0' && a[i][j]<='9'; j+=2 )
s=10*s+a[i][j]-'0';
printf("s=%d\n",s);
}
结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_____,再说明结构体变量.
执行下面程序段的输出结果是______.
int x=023,y=5,z;
z=2+(y+=y++,x+8,++x);
printf("%d,%d\n",x,z);
以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时,输入形式是_____。
int k; flaot a; double x;
scanf("%d%f%lf", &k, &a, &x);
printf("k = %d, a = %f, x = %f\n", k, a, x);
下列程序的执行结果是_____。
int d = 1;
fun(int p)
{ int d = 5;
d += p++;
printf("%d ", d);
main()
{ int a = 3;
fun(a);
d += a++;
printf("%d", d);
}
以下程序的输出结果是_____。
#define PR(ar) printf("ar=%d ", ar)
main()
{ int j, a[] = { 1, 3, 5, 7, 9, 11, 13, 15}, *p = a + 5;
for(j = 3; j ; j--)
switch( j )
{ case 1:
case 2: PR(*p++); break;
case 3: PR(*(--p) );
}
}
以下程序的运行结果是_____。
#include
void fun(char *s)
{
int i, j, n;
for(i=0; s[i]!='\0'; i++)
if(s[i]>='0' && s[i]<='9')
{n=0;
while(s[i+1+n]!='\0') n++;
for(j=i+n+1; j>i; j--)
s[j+1]= s[j];
s[j+1]='*';
i=i+1;
}
}
main()
{
char s[80]="ba3a54cd23a";
fun(s);
puts(s);
}
以下程序的运行结果是_____。
#include
void fun (char *s, char *t)
{
int i, sl;
sl = strlen(s);
for (i=0; i t[i] = s[sl - i - 1]; for (i=0; i t[sl+i] = s[i]; t[2*sl] = '\0'; main() { char s[81] = "ABCD", t[81]; fun(s, t); puts(t); } 下面程序的执行结果是: #include "stdio.h" main() { int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b); else printf("%d,%d\n",b,a); } 以下程序的输出结果是( ). main( ) { int i,j,x=0; for(i=0;i<2;i++) { x+=2; for(j=0;j<3;j++) { if (j%2) continue; x++; } x++; } printf("x=%d\n",x); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用'.'结束输入。 ------------------------------------------------*/ #include "stdio.h" void NONO(); int fun(char *c,int status) { /**********Begin**********/ if (*c== ' ') return 1; else { if(status && *c <= 'z' && *c >= 'a') *c += 'A' - 'a'; return 0; } /********** End **********/ } void main() { int flag=1; char ch; printf("请输入一字符串,用点号结束输入!\n") ; do { ch=getchar(); flag=fun(&ch, flag); putchar(ch); }while(ch!='.'); printf("\n"); NONO(); } void NONO( ) { char s1[81], ch; int i, flag = 1; FILE *rf, *wf ; rf = fopen("in.dat", "r") ; wf = fopen("out.dat", "w") ; fgets(s1, 80, rf) ; for(i = 0 ; i < strlen(s1); i++) { ch = s1[i] ; flag = fun(&ch, flag) ; s1[i] = ch ; } fprintf( wf,"%s", s1 ); fclose(rf) ; fclose(wf) ; } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:删除所有值为y的元素。数组元素中的值和y的值由主函数通过键盘输入。------------------------------------------------*/ #include "stdio.h" #include #include #define M 20 void fun(int bb[],int *n,int y) { /**********Begin**********/ int i,j; for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; } /********** End **********/ } main() { int aa[M],n,y,k; printf("\nPlease enter n:");scanf("%d",&n); printf("\nEnter %d positive number:\n",n); for(k=0;k printf("The original data is:\n"); for(k=0;k printf("\nEnter a number to deletede:");scanf("%d",&y); fun(aa,&n,y); printf("The data after deleted %d:\n",y); for(k=0;k printf("\n"); TestFunc(); } TestFunc() { FILE *IN,*OUT; int n; int i[10]; int o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } fun(i,&n,3); for(o=0;o { fprintf(OUT,"%d\n",i[o]); } fclose(IN); fclose(OUT); } /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:求如下表达式: 1 1 1 S = 1 + ---- + ------ + ...... + --------------- 1+2 1+2+3 1+2+3+......+n ------------------------------------------------------*/ #include void main() { int n; float fun(int n); printf("Please input a number:"); /**********ERROR**********/ print("%d",n) ; scanf("%d",&n) ; printf("%10.6f\n",fun(n)); } /**********ERROR**********/ fun(int n) float fun(int n) { int i,j,t; float s; s=0; for(i=1;i<=n;i++) { t=0; for(j=1;j<=i;j++) t=t+j; /**********ERROR**********/ s=s+1/t; s=s+1.0/t; } return s; } /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:分别统计字符串中大写字母和小写字母的个数。 例如:给字符串 s 输入:AAaaBBb123CCccccd, 则应输出结果:upper = 6, lower = 8。 ------------------------------------------------------*/ #include #include /**********ERROR**********/ void fun ( char *s, int a, int b ) void fun ( char *s, int *a, int *b ) { while ( *s ) { if ( *s >= 'A' && *s <= 'Z' ) /**********ERROR**********/ a++ ; (*a)++ ; if ( *s >= 'a' && *s <= 'z' ) /**********ERROR**********/ b++; (*b)++; s++; } } void main( ) { char s[100]; int upper = 0, lower = 0 ; printf( "\nPlease a string : " ); gets ( s ); fun ( s, & upper, &lower ); printf( "\n upper = %d lower = %d\n", upper, lower ); } 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是 若有以下程序段,其输出结果是 int a = 0, b = 0, c = 0; c = ( a -= a - 5), (a = b, b+3); printf("%d,%d,%d\n",a, b, c); 下面程序的运行结果是 #include main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); } 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。 #include main() { int i=0,j,k; do{i++;k=316-13*i;}while(______); j=k/11; printf("316=13*%d+11*%d",i,j); } 有如下程序 #include main() { FILE *fp1; fp1 = fopen("f1.txt", "w"); fprintf(fp1, "abc"); fclose(fp1); } 若文本文件f1.txt中原有内容为good,则运行以上程序后文件f1.txt中的内容为 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。 第七章数组 一、填空: (1) 下列程序段的输出结果是【1】。 main() { char b[]=”Hello,you”; b[5]=0; printf(“%s \n”, b ); } (2) 以下程序的输出结果是【2】。 main() { char s[]="abcdef"; s[3]=‘\0'; printf("%s\n",s); } (3) 若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个 数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a[ ]) { int i; for(i=1; i<=10; i++) 【3】=i; for(i=0; i<5; i++) 【4】=a[i]; } (4) 若有以下程序 main() { int a[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s+=a[i][j]; } } printf("%d\n",s); } 执行后输出结果是【5】 (5) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式 如下 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1. 其构成规律是: (1)第0列元素和主对角线元素均为1 (2)其余元素为其左上方和正上方元素之和 (3)数据的个数每行递增1 请将程序补充完整。 #define N 6 void yanghui(int x[N][N]) { int i,j; x[0][0]=1; for(i=1;i main() { int i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a); } C语言的编译预处理就是对源程序进行初步的语法检查。× 若有以下定义和语句:int x=10,*p=&x;*p=x;则两处的*p都用来给指针变量p赋值。× 知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是#include fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } 下列程序的输出结果是___GDABC___。 # include 1、 下面程序输出的结果是 x=5 y=-20 IF x<0 THEN x=y-3 ELSE y=y+3 END IF PRINT x-y, y-x END 2、 下面程序的作用是求 100 991.......651431211×++×+×+×的值,请补充完整 i=1 s=0 DO s=s+______________ _____________________ LOOP UNTIL _______________ PRINR s END 3、 读程序 甲: i=1 乙: i=1000 s=0 s=0 WHILE i<=1000 DO s=s+i s=s+i i=i+1 i=i-1 WEND LOOP UNTIL i<1 PRINT s PRINT s END END 对甲乙判断正确的是 A 、 程序相同,结果不同 B 、程序不同,结果相同 C 、 程序相同,结果不同 D 、程序相同,结果相同 4、 如果下面程序输出的结果是990,那么“条件”处应填 i=11 s=1 DO s=s *i i=i-1 LOOP UNTIL “条件” PRINT s END 5、程序输出的结果S= i= i=1 WHILE i<8 s=2i+3 i=i+2 WEND PRINT s END 6、将两个数a=8 , b=17 交换,使a=17, b=8. 下面语句正确的一组是 A、a=b B、c=b C、b=a D、a=c b=a b=a a=b c=b a=c b=a 7、下面两个程序最后输出的S分别等于 i=1 i=1 WHILE i<8 WHILE i<8 i=i+2 s=2×i+3 s=2×i+3 i=i+2 WEND WEND PRINT s PRINT s END END A、都是17 B、都是21 C、21, 17 D、14,21 8、下面程序的算法功能是 INPUT x IF x<3 THEN y=2x ELSE IF x>3 THEN y=x^2-1 ELSE y=2 END IF END IF PRINT y END 9、程序运行的结果是 j=1 WHILE j×j<100 j=j+1 WEND j=j-1 PRINT “j=”; j END下列程序段的输出结果是1
以下程序的输出结果是
1 下面程序输出的结果是