收藏 分销(赏)

二级C语言填空题分类汇编.doc

上传人:二*** 文档编号:4510471 上传时间:2024-09-26 格式:DOC 页数:25 大小:156KB 下载积分:5 金币
下载 相关 举报
二级C语言填空题分类汇编.doc_第1页
第1页 / 共25页
本文档共25页,全文阅读请下载到手机保存,查看更方便
资源描述
青蓝是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)((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<b)?a:b; x=(x<c)?x:c; x=(d>x)?x:d; printf("%d\n",x); } 输出 (6)若变量a,b 已定义为int 类型并赋值21 和55,要求用printf 函数以a=21,b=55 的形 式输出,请写出完整的的输出语句 【6】 。(6)【6】printf("a=%d,b=%d",a,b); (6)设有定义:float x=123.4567;,则执行下列语句后的输出结果是【6】。(6)【6】123.460000 printf("%f\n",(int)(x*100+0.5)/100.0); (7)下列程序运行后的输出结果是 【7】。(7)【7】10 11 main( ) { int m=011,n=11; printf("%d %d\n",+ +m,n+ +); } (6)执行下列程序时,输入1234567<CR>,则输出结果是【6】。(6)【6】12 34 #include <stdio.h> main( ) { int a=1,b; scanf("%2d%2d",&a,&b); printf("%d%d\n",a,b); } (6)执行下列程序后的输出结果是【6】。【6】a=14 main() { int a=10; a=(3*5,a+4); printf("a=%d\n",a); } (7)若整型变量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 <stdio.h> main() { int x=20; printf(“%d”,0<x<20); printf(“%d\n”,0<x&&x<20); } If语句   (7)有以下程序 4   #include   main()   { int a=1,b=2,c=3,d=0;    if(a==1)    if(b!=2)    if(c==3) d=1;    else d=2;    else if(c!=3) d=3;    else d=4;    else d=5;   printf(“%d\n”,d);   }   程序运行后的输出结果是 【7】 。 For循环语句 (10)下列程序的输出结果是【12】 。(10)【12】ACE #include <stdio.h> main( ) { int i; for(i='a';i<'f';i+ +,i+ +) printf("%c",i-'a'+'A'); printf("\n"); } (8)若有定义:int k;,以下程序段的输出结果是【8】。【8】##2##4 for(k=2;k<6;k++,k++) printf("##%d",k); (9)以下程序的定义语句中,x[1]的初值是【9】,程序运行后输出的内容是【10】 【9】2【10】2 4 6 8 #include<stdio.h> main() { int x[]={1,2,3,4,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<stdio.h> main() { int i,j,sum; for(i=3;i>=1;i--) { sum=0; for(j=1;j<=i;j++) sum+=i*j; } printf("%d\n",sum); }  (10)有以下程序 (10)0 1 123 #include <stdio.h> main() { int f,f1,f2,i; f1=0;f2=1; printf(“%d %d”,f1,f2); for(i=3;i<=5;i++) { f=f1+f2; printf(“%d”,f); f1=f2; f2=f; } printf(“\n”); } 程序运行后的输出结果是 【10】 。   (11)有以下程序 101418   #include <stdio.h>   main()   { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};    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<CR>,则程序的输出结果是 【9】。(9)【9】1 1 main( ) { int a,b; printf("Enter a,b: "); scanf("%d,%d",&a,&b); while(a! =b) { 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<stdio.h> main( ) { int n,s; printf("Enter a number : "); scanf("%d",&n); printf("Output: "); do { s=n%10; printf("%d",s); 【10】;} while(n! =0); printf("\n"); }  (8)下列程序的输出结果是【9】。(8)【9】54321 #include <stdio.h> main() { int n=12345,d; while(n! =0) { d=n%10;printf("%d",d);n/=10; } } (9)有下列程序段,且变量已正确定义和赋值(9)【10】k<=n 【11】k++ for(s=1.0,k=1;k<=n;k+ +) s=s+1.0/(k*(k+1) ); printf("s=%f\n\n",s); 请填空,使下列程序段的功能与之完全相同 s=1.0;k=1; while( 【10】){s=s+1.0/(k*(k+1) ); 【11】;} printf("s=%f\n\n",s); (7)当执行下列程序时,输入1234567890<CR>,则其中while循环体将执 【7】0 #include<stdio.h> main() { char ch; while((ch=getchar())=='0') printf("#"); } (8)有以下程序(8)不能 #include <stdio.h> main( ) { char c1,c2; scanf(“%c”,&c1); while(c1<65||c1>90) scanf(“&c”,&c1); c2=c1+32; printf(“%c, %c\n”,c1,c2); } 程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】。 (9)以下程序运行后的输出结果是【9】(9)s=0 #include <stdio.h> main( ) { int k=1,s=0; do{ if((k&2)!=0)continue; s+=k;k++; }while(k>10); printf(“s=&d/n; ”,s) } (10)下列程序运行时,若输入labced12df<回车> 输出结果为【10】(10)1AbCeDf2dF #include <stdio.h> main( ) { char a =0,ch; while((ch=getchar())!=’\n’) { if(a%2!=0&&(ch>’a’&&ch<=’z’)) ch=ch-‘a’+’A’; a++;putchar(ch); } printf(“\n”); }  (9)以下程序运行后的输出结果是 【9】 。(9)5 #include <stdio.h> main() { int a=1,b=7; do { b=b/2;a+=b; } while (b>1); printf(“%d\n”,a);}  (8)有以下程序 7   #include <stdio.h>   main()   { int m,n;    scanf("%d%d",&m,&n);    while(m!=n)    { while(m>n) m=m-n;    while(m<n) n=n-m;   }   printf(“%d\n”,m);   }   程序运行后,当输入14 63 <回车> 时,输出结果是 【8】 。 Switch语句 (9)下列程序的运行结果是【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)以下程序的输出结果是【9】。【9】9911 #include<stdio.h> main() { int j,a[]={1,3,5,7,9,1‘1,13,15},*p=a+5; for(j=3;j;j--) { switch(j) { case 1: case 2: printf("%d",*p++);break; case 3: printf("%d",*(--p)); } } } 函数调用 (8)下列程序的运行结果是【8】。【8】m=4 k=4 i=5 k=5 int k=0; void fun(int m) { m+=k;k+=m; printf("m=%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 <stdio.h> int ___【12】_____; main( ) { int x,y,(*p)(); scanf(“%d%d”,&x,&y); p=max; printf(“%d\n”,(*p)(x,y)); } int max(int a,int b) { return (a>b?a:b); } (11)有以下程序 3025 #include <stdio.h> int a=5; void fun(int b) { int a=10; a+=b;printf(“%d”,a); } main() { int c=20; fun(c);a+=c;printf(“%d\n”,a); } 程序运行后的输出结果是 【11】 。  (15)有以下程序 1 3 6 #include <stdio.h> fun(int x) { if(x/2>0) run(x/2); printf(“%d ”,x); } 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)【18】3 7 15 #include <stdio.h> main( ) { int i,n[4]={1}; for(i=1,i<=3;i+ +) { n[i]=n[i-1]*2+1;printf("%d",n[i]);} } (16)下列程序的输出结果是【17】。【17】10 int fun(int*x,int n) { if(n==0) return x[0]; else return x[0]+fun(x+1,n-1); } main() { int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3));} (11)以下程序的输出结果是【12】。【12】4 #include<stdio.h> main() { int a[5]={2,4,6,8,10},*p; p=a; p++; printf("%d",*p); } (10)以下程序的输出结果是【10】。【10】3 #include<stdio.h> #define N 5 int fun(int*s,int a,int n) { int j; *s=a;j=n; while(a!=s[j])j--; return j; } main() { int s[N+1];int k; for(k=l;k<=N;k++) s[k]=k+l; printf("%d\n",fun(s,4,N)); } (11)有以下程序,程序执行后,输出结果是【11】(11)7777654321 #include <stdio.h> void fun (int *a) { a[0]=a[1];} main() { int a[10]={10,9,8,7,6,5,4,3,2,1},i; for(i=2;i>=0;i--) fun{&a[i]}; for(i=0;i<10;i++) printf(“&d”,a[i]); printf(“\n”); }  (10)有以下程序 135   #include <stdio.h>   main()   { int a[]={1,2,3,4,5,6},*k[3],i=0;    while(i<3)    { k[i]=&a[2*i];    printf("%d",*k[i]);    i++;    }   }   程序运行后的输出结果是 【10】 。 static (11)以下程序的输出结果是【11】。【11】15 #include<stdio.h> int fun(int x) { static int t=0; return(t+=x); } main() { 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)以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。 4 3 7 2 6 9 1 5 8 10 #include<stdio.h> main() { int x[4][4],n=0,i,j; for(j=0;j<4;j++) for(i=3;i>=j;【12】) {n++;x[i][j]=【13】;} for(i=0;i<4;i++) { for(j=0;j<=i;j++) printf("%3 d",x[i][j]); printf("\n"); } } 【12】i—   (9)有以下程序 123569   #include <stdio.h>   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*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 <stdio.h> #include "myfun.c" main( ) { fun( );printf("\n");} myfun.c 文件如下: void fun( ) { char s[80],c; int 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 <stdio.h> #include <string.h> char *fun(char *t) { char *p=t; return (p+strlen(t)/2); } main( ) { char *str="abcdefgh"; str=fun(str); puts(str); } (10)下列程序的输出结果是【10】。【10】9 #include<string.h> main() { printf("%d\n",strlen("IBM\n012\1\\"));} (11)已定义char ch=‘$’;int i=1,j;,执行j!=ch&&i++以后,i的值为【 】 【11】2 (12)下列程序的输出结果是【12】。【12】5 4 #include<string.h> main() { char a[]={'\1','\2','\3','\4','\0'}; printf("%d%d\n",sizeof(a),strlen(a)); } (13)以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符 @作为输入结束标志。请填空。【13】n #include<stdio.h> long【14】;/*函数说明语句*/main() { long n; n=func(); printf("n=%ld\n",n); } long func() { long m; for(m=0;getchar()!='@';【15】); retum m; }   (12)有以下程序 12 fabc de   #include <stdio.h>   #include <string.h>   void fun(char *str)   { char temp;int n,i;    n=strlen(str);    temp=str[n-1];    for(i=n-1;i>0;i--) str[i]=str[i-1];    str[0]=temp;   }   main()   { char s[50];    scanf("%s",s); fun(s); printf("%s\n",s);}   程序运行后输入:abcdef<回车>,则输出结果是 【12】 。 指针 (17)下列程序的输出结果是【18】。【18】40 #include<stdlib.h> main() { char*s1,*s2,m; s1=s2=(char*) malloc(sizeof(char)); *s1=15;*s2=20; m=*s1+*s2; printf("%d\n",m); } (10)以下程序的输出结果是【11】。【11】3 5 #include<stdio.h> void swap(int*a,int*b) { int*t; t=a;a=b;b=t; } main() { int i=3,j=5,*p=&i,*q=&j; swap(p,q); printf("%d%d\n",*p,*q); } 递归 (12)以下程序的输出结果是【13】。【13】13 #include<stdio.h> void fun(int x) { if(x/2>0) fun(x/2); printf("%d",x); } main() { fun(3); printf("\n"); } 预处理 (15)下列程序的输出结果是【19】。(15)【19】55 #include <stdio.h> #define M 5 #define N M+M main() { int k; k=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<stdio.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<N;i++) if(【14】=='M') n++; return n; } main() { SS W[N]={{1,"AA",’F’},{2,"BB",'M'},{3,"CC",'M'}}; int n; n=fun(W); printf("n=%d\n",n); } (14)下列程序的运行结果为【14】 `(14)1001,ChangRong,1098.0 #include <stdio.h> #include <string.h> struct A { int a;char b[10];double c;}; void f (struct A*t); main() { struct A a={1001,”ZhangDa”,1098.0}; f(&a);printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c); } void f(struct A *t) { strcpy(t->b,”ChangRong”);}  (12)设有定义: &p.ID struct person { int ID;char name[12];}p; 请将scanf(“%d”, 【12】 );语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。  (14)有以下程序 16 #include <stdio.h> typedef struct { int num;double s}REC; void fun1( REC x ){x.num=23;x.s=88.5;} main() { REC a={16,90.0 }; fun1(a); printf(“%d\n”,a.num); } 程序运行后的输出结果是 【14】 。 字符串  (13)有以下程序 How are you? How #include <stdio.h> main() { char a[20]=”How are you?”,b[20]; scanf(“%s”,b);printf(“%s %s\n”,a,b); } 程序运行时从键盘输入:How are you?<回车> 则输出结果为 【13】 。 文件 (19)设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件 readme.txt的最后续写内容。【20】"a" fw=fopen("readme.txt",【20】); (14)以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。 【15】"filea.dat","r" #include <stdio.h> main() { FILE*fp; char ch; fp=fopen(【15】); ch=fgetc(fp); while(!feof(fp)) {putchar(ch); ch=fgetc(fp);} putchar("\n"); fclose(fp); } (13)以下程序用来判断指定文件是否能正常打开,请填空 (13)NULL #include <stdio.h> main( ) { 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>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 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( 【14】 )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 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()函数的功能是:构成一个如图所示的带头结点的单向链表,在结点 的数据域中放入了具有两个字符的字符串。Disp()函数的功能是显示输出该单链表中 所有结点中的字符串。请填空完成disp()函数。(16)【19】p!=NULL 【20】p->next #include <stdio.h> typedef struct node /*链表结点结构*/ { char sub[3]; struct node *next; }Node; Node fun(char s) /*建立链表*/ { …… } void disp(Node *h) { Node *p; p=h− >next; 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);} 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,j,k,t; for(i=0;i<N;i+ +) for(j=0;j<N-1;j+ +) for(k= 【13】; k<N;k+ +) /*判断行下标是否为偶数来确定按升序或降序来排序*/ if( 【14】? a[i][j]<a[i][k]:a[i][j]>a[i][k]) { t=a[i][j]; a[i][j]=a[i][k]; a[i][k]=t; } } void outarr(int a[N][N]) { …… } main( ) { int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服