1、c语言复习1计算机二级1下面关于C语言的叙述中,正确的是( )。 (A) 每行只能写一条语句 (B) 程序中必须包含有输入语句 (C) main函数必须位于文件的开头 (D) 每条语句最后必须有一个分号2C语言的函数体由( )括起来。 (A) ( ) (B) (C) (D)/* */3下列不属于C语言关键字的是( )。 (A) continue (B) integer (C) static (D) signed4下面关于C语言变量的叙述中,错误的是( )。 (A) 可以用const关键字定义变量 (B) 在C程序中,SUM和sum是不同的变量 (C) 变量名必须由字母或下划线开头 (D) 变量
2、的类型确定了变量的取值范围5若有定义:int a=2; 则正确的赋值表达式是( )。 (A) a-=(a*3) (B) a=double(-a) (C) a*3 (D) a*4=36若已定义:int a=2,b=2; 则表达式 (a+(b+), b) 的值是( )。(A) 2 (B) 3 (C) 4 (D) 67若有定义:int i=7,j=8;则表达式 i=j|ij 的值为( )。 (A) 1 (B) 变量i的值 (C) 0 (D) 变量j的值8以下程序段的运行结果是( )。int a=1; printf(%d, %d, %dn, a, +a, a+);(A) 3,3,1 (B) 1, 2,
3、 2 (C) 1, 2, 3 (D) 3, 2, 19若有定义:int a=20,b=28,c;则执行语句c=(ab)=6) printf(%dn,n); else printf(%dn,+n); (A) 4 (B) 5 (C) 6 (D) 712以下的if语句中,x的值一定被重新赋值的是( )。 (A) if(x=y) x+=y; (B) if(xy & x!=y ); x+=y; (C) if(x!=y) scanf(%d,&x); else scanf(%d,&y); (D) if(xy) x+;y+; 13若有定义int a3=1,2,3,4,5,6,7,8,9;则表达式sizeof(
4、a)/sizeof(a0) 的值为( )。 (A) 3 (B) 4 (C) 5 (D) 914设有以下变量定义: char str1=string,str28,*str3,*str4=string;( )是正确的。 (A) strcpy(str1,China); (B) str2=China; (C) strcpy(*str3,China); (D) strcpy(str40,China);15以下程序段运行后屏幕输出为( )。 char str=abcd; printf(%d,strlen(str); (A) 4 (B) 5 (C) 6 (D) 716设有如下定义语句:union u_typ
5、e int i; double x; float f; ;struct str_type char str100; union u_type u2; ;则语句“printf(%d, sizeof(struct str_type);”的输出结果是( )。 (A) 100 (B) 116 (C) 120 (D) 20017若有定义:int a33;则表达式&a21-a的值为( )。(A) 7 (B) 8 (C) 6 (D) 918下面程序的输出结果为( )。#include void main() enum Weekdaysun=7,mon=1,tue,wed,thu,fri,sat; enum
6、Weekday day=sat; printf(%dn,day); (A) 7 (B) 6 (C) 5 (D) 419对下面程序正确的描述是( )。#include #include void main()FILE *in,*out;in=fopen(infile.txt,r)out=fopen(outfile.txt,w)=NULL)while(!feof(in) fputc(fgetc(in),out);fclose(in);fclose(out); (A) 程序实现在屏幕上显示磁盘文件infile.txt的内容 (B) 程序实现将文件infile.txt和outfile.txt的内容合二
7、为一 (C) 程序实现将磁盘文件infile.txt复制到磁盘文件outfile.txt (D) 程序实现将两个磁盘文件合并并在屏幕上输出20下面程序运行后的结果是( )。#include main() FILE *fp; int i=10,j=20,k,n; fp=fopen(d_f.dat,w); fprintf(fp,%dn,i); fprintf(fp,%dn,j); fclose(fp); fp=fopen(d_f.dat,r); fscanf(fp,%d%d,&k,&n); printf(%d %dn,k,n); fclose(fp); (A) 10 20 (B) 10 30 (C
8、) 20 30 (D) 20 1021. 下面语句错误的是( )。 (A) int *p; *p=20; (B) char *s=abcdef; printf(%sn,s); (C) char *str=abcdef; str+; (D) char *str;str=abcdef;22若有以下程序段,则叙述正确的是( )。char s=computer;char *p;p=s; (A) s和p完全相同 (B) 数组s的长度和p所指向的字符串长度相等 (C) *p与s0相等 (D) 数组s中的内容和指针变量p中的内容相等23下面程序的运行结果是( )。 #define N 10 #define
9、K(x) x*x #define T(x) (x*x) main( ) int a,b; a=9%K(N); 9%10*10 b=9%T(N); 9%(10*10) printf(%d,%dn,a,b); (A) 9,9 (B) 9,90 (C) 90,9 (D) 90,9024. 对于整型变量a,赋值语句 a=(a%3=0?1:0); 与( )语句不等价。 (A) if (a%3= =0) a=1; else a=0; (B) if (a%3!=0) a=0; else a=1; (C) if (a%3) a=0; else a=1; (D) if (a%3) a=1; else a=0;2
10、5若已定义 int a=3,b=2,c=1; 则语句 +a|+b&+c; 运行后b的值为( )。(注意这里是不完全运算) (A) 0 (B) 3 (C) 1 (D) 21 修改下面程序, 其功能是求解百马百担问题.:有100匹马, 驮100担货, 大马驮3担, 中马驼2担, 两匹小马驮1担, 问大、中、小马数可分别多少? 有多少种解决方案?#include #include /*/ void fun() /*/ int large,middle,small,n=0; clrscr(); for( large=0;large=33;large+ ) for( middle=0;middlelar
11、ge:%d,middle:%d,small:%dn,n,large,middle,small); return n;void main() int num; num = fun(); printf(n There are %d solutions.n,num); getch();2 修改下列程序, 其功能是交换两个变量的值。/*/ void swap(int p1,int p2) /*/ int temp; temp = *p1; /*/ p1 = p2; /*/ *p2 = temp;void main() int a,b;/*/ scanf(%d%d,a,b); /*/ swap(&a,&
12、b); printf(nResult: a=%d b=%dn,a,b);3 修改下列程序, 实现计算1至100之间的奇数之和、偶数之和。void main() int b,i;/*/ int a=c=0; /*/*/ for( i=0,i=100,i+=2 ) /*/ a+=i; b=i+1; c+=b; printf(total of even numbers: %dn,a); printf(total of odd numbers: %dn,c-101);4 修改程序,使其实现从键盘依次输入M个整数,输出其中所有的偶数。如 输入:23 62 38 45 26 输出:62 38 36#inc
13、lude #include /*/ #include M 5 /*/main() int aM,i; printf(Please input 5 numbers:n); for(i=0; iM; i+) /*/ scanf(%d, ai); /*/ printf(Even numbers:n ); for(i=0; iM; i+)/*/ if( ai/2 =0) /*/ printf(%d , ai); printf(n ); getch();5 修改程序,使其将输入字符串中08的数字字符变为比它大1的数字字符,将9变为0。如 输入:ab12cD56EF89GH4 输出:ab23cD67EF9
14、0GH5#include #include main() char str1128, str2128; int i,len; gets(str1); len = strlen(str1);/*/ for(i=0; ilen; i+) /*/ /*/ if( str1i = 0 | str1i = 8) /*/ str2i = str1i + 1; else if(str1i = 9) str2i = 0; else str2i = str1i; /*/ str2i = n; /*/ puts(str2); getch();6 修改程序,使其实现从键盘输入一串字符,统计其英文字母、数字及其它字符的个数。#include #include void main() char c; int letter,number,other; /*/ letter=number=other=0; /*/ printf(Please input string:); while(c=getchar()!=n) /*/ if (c=a & c=0 & c=9) /*/ number+; else other+; printf(letter=%d,number=%d,other=%dn,letter,number,other); getch();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1