《C-模拟题-20102011s.doc》由会员分享,可在线阅读,更多相关《C-模拟题-20102011s.doc(6页珍藏版)》请在金锄头文库上搜索。
1、C 语言程序设计模拟题一、选择题(共15分,每题 1分 )1C以下叙述中,正确的是 。A. 在C程序中,main函数必须位于程序的最前面B. C程序的每一行只能写一条语句C. C语言本身没有输入输出语句D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误2B C语言表达式 a=15,a%6的值是 。A. 15B. 3C. 2D. 非法表达式3. D若x是整型变量,y是单精度浮点型变量,值为10,表达式 x=y/4的值是 。A. 2.5B. 2.0C. 3D. 24. B 循环语句中,continue语句的作用是 。A. 终止程序B. 结束本次循环C. 从本循环体内跳出D. 跳出子函数5
2、. B 下列 语句定义p为指向double类型变量x的指针。A. double x, *p=x;B. double x, *p=&x;C. double *p=&x , x;D. double x, p=x;6. D 下面四个程序段中,不能输出23个*号的程序段是 。A. for(int i=0; i0; j-) putchar(*);C. int k=23; while(k0) putchar(*); k-;D. int i=0; while(i23) putchar(*); i+; 7. B以下对结构体变量stu1中成员age的非法引用是 。stuct student int age; i
3、nt num;stu1, *p=&stu1;A. stu1.ageB. student.ageC. p-ageD. (*p).age8. D 设有变量定义 int x, a=3, b=4; 则语句 x=(a=0)&(b=8); 执行之后各变量的值为 。A. x=0, a=0, b=8B. x=1, a=3, b=4C. x=1, a=0, b=8D. x=0, a=0, b=49.A C语言中的标识符只能由字母、数字和下划线组成且第一个字符 。A. 必须为字母或下划线B. 必须为下划线C. 必须为字母D. 可以是字母、数字或下划线中的任一个10.C 若希望A的值为奇数时,表达式的值为“真”,A
4、的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是 。A. A%2=1B. !(A%2=0)C. !(A%2)D. A%211B 下面运算优先级按从高到低的排列顺序是 。A. 算术运算、逻辑运算、关系运算B. 条件运算、赋值运算、逗号运算C. 逻辑运算、关系运算、赋值运算D. 位运算、算术运算、赋值运算12B以下程序段的输出结果为: 。for ( i=4; i1;i- )for ( j=1; ji; j+ ) putchar(#);A. #B. #C. #D. #13A while循环为当型循环,其特点是 。A. 先判断表达式,后执行语句B. 先执行语句,后判断表达式C. 只判断表
5、达式D. 直接执行语句14A 下列标识符中,不合法的标识符为: 。A. a#bB. _intC. a_10D. Pad15 B 设x,y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 。A. y & yB. x=y & y!=zC. x|y+z & y-zD. !(xy) & !z | 1二、填充题(共 30 分,每题 2分)1、表达式strlen (“C2009”) 的值是_5_2、设int a=3,b=4,c=5; 则a*a+b*b=c*c的结果为_1_3、设a=2,b=3,x=3.5,y=2.5, 表达式(float)(a+b)/2+(int)x%2/4 的值为
6、 2.5 4、下面这些运算符中 :%, /, + ,* ,要求运算量是整型的是 % 5、已知: int i=0, j=10, k; 完成 下列循环后,k的 值是 10 for ( ;i=j; i+,j-) k=i+j;6、已知:int a=5; ,计算表达式 a-=a*=a+=a/a 后,变量 a的值 是 0 7、已知:int a=2; ,表达式 a%2+(a=5) 的值 是 5 8、下列运算符中: !, +=, &, %=, | , 优先级相同的是 +=, %= 9、已知 : int a=1, b=0, c=1; 计算表达式 !b|+a&+c的值后,c的值是 1 10、有返回值的函数体内应加
7、条 return 语句 11、下列函数 fun() 被调用了 3次,a的值 是 4 fun() static int a=1; +a;12、在下列调用函数中,实参的个数是 3 fun( a1, (a2,a3),(a4,a5,a6);13、下列结构变量 m的成员 a 的表示应该是 m.a struct xy int a; double b; m;14、已知: char a=”abcde”,*p; 表达式 *(p+5)的值 为 0 15、指针存放的值 是 它所指向的变量的地址值 三、程序填空(共 30分,每空 3分 )1、从键盘输入一字符,如果为Y,则打印是;为N,打印否,其他字符打印输入错误。#
8、include main() char a; printf(输入一个字符:); a=getchar(); _ /答案: if( a= =Y | a= =N ) if (a= =Y) printf( 是); else printf( 否); else printf( 输入数据不合要求);2、输入一个整数n,计算累加和(1+2+3+.+n)并输出。main() _ /答案:int i, n, sum=0; scanf( %d, &n ); for ( i = 0; i = n; i+ ) sum += n; _ /答案:printf( %d, sum );3、查找100至999之间所有符合以下条件
9、的数:它是另一数的平方,且至少有两位数是相同的。如数144,它是12的平方,其中有两位4。main() int n,m,a,b,c; for ( n = 10; n = 31; n+ ) _ /答案:m = n*n; a=m%10; b = m / 10 % 10; c = m / 100 % 10; _ /答案: if ( a= =b | b= =c | a= =c ) printf( %d , m ); 4、输入n个整数,判断它们是否有重复,如果没有重复输出yes,否则输出No。 #include #define N 100main() int aN, n, i, j, isyes=1;
10、scanf( %d, &n ); for ( i=0; in; i+ ) scanf( %d, &ai ); _ /答案: for ( i=0; in; i+ ) for ( j=0; jn; j+ ) _ /答案: if ( ai= =aj & i != j ) isyes=0; if ( isyes= =0 ) printf( Non );elseprintf( Yesn );5、统计字符换str中字符#与数字字符的个数。#include#includemain() charstr81; _ /答案: intn1=0,n2=0; gets(str); for ( i = 0; stri !
11、 = 0; i+ ) if ( str i= ) n1+; _ /答案:if (stri=0 & stri = 9 ) n2+; printf( #=%d, digit=%dn, n1, n2 );6、 下列函数用冒泡法对一维整数数组中的数据进行从小到大的排序,请填空。void sort(int a,int n) int i, j; for( i=0; i n-1; i +) for ( _ _ ) /答案: j=0; jaj+1) t= aj; aj = aj+1; aj+1 = t; 四、编程题(25分)1. 在源程序文件“C:素材StrCount.c”中,编写程序,完成以下功能,并将StrC