江苏省五年一贯制专转本《C语言程序设计》模拟试卷二(晓庄)一、 填空題(每题2分,共16分)1.整型常量默认类型是 、实型默认类型是 、函数默认类型是 2. 若k为 int整型变量且赋值7,请写出赋值表达式 k *= k + 3的运算结果 .3. 设x,y,z均为int型变量,请写出描述"x,y中有一个为负数"的表达式: 4. 已知A=7.5,B=2,C=3.6,表达式A>B&&C>A || AB的值是 .5. 以下程序的运行结果是 main(){ printf("%s,%5.3s","computer","computer"); }6. 设y为int型变量,请写出描述"y是奇数"的表达式 7. 若a是int型变量,则下面表达式的值为 ,a的值为 a=4*5,a+6),a++8. 若有定义:int a=10 ,b=9 ,c=8;执行下列语句后,变量b中的值是 。
c=(a-=(b-5)); c=(a%11)+(b=3);二、 单项选择题(每题2分,共40分)1.下列四组字符串中都可以用作C语言程序标识符的一组是____ A) print B) i\am C) Pxq D) str_l _3d one_half My->book Cpp oodb start$it line# pow aBc 3pai His.age while2.下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义3.已知 long i=65539;执行语句printf("%d",i);屏幕显示____A) 65539 B) -3 C) 3 D) 程序不能执行4.字符g赋给字符变量c,正确的表达式是____A) c=\147 B) c="\147" C) c='\147' D) c='0147'5.已知:char a;int b;float c;执行语句"c=a+b+c;"后,变量c的数据类型是____。
A) int B) char C) float D) double6.温度华氏和摄氏的关系是: C=5/9 (F-32)已知:float C,F;由华氏求摄氏的正确的赋值表达式是____推荐精选A) C=5/9(F-32) B) C=5*(F-32)/9C) C=5/9*(F-32) D) 三个表达式都正确7.逗号表达式"(a=3*5,a*4),a+15"的值是____A) 15 B) 60 C) 30 D) 不确定8.已知int i=10;表达式"20-0<=i<=9"的值是____A) 0 B) 1 C) 19 D) 209.在下列结论中,只有一个是错误的,它是____A) C语言允许函数的递归调用B) C语言中的continue语句,可以通过改变程序的结构而省略C) 有些递归程序是不能用非递归算法实现的D) C语言中不允许在函数中再定义函数10.下面程序可能的输出结果是____main(){ int a,b;scanf("%2d%3d",&a,&b);printf("a=%d b=%d\n",a,b);}A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句有错误11.以下程序段的输出结果是____。
int a=10,b=50,c=30;if(a>b) a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);A) a=10 b=50 c=10 B) a=10 b=30 c=10C) a=50 b=30 c=10 D) a=50 b=30 c=5012.以下程序的输出结果是____main(){ int a=0,b=1,c=0,d=20;if(a) d=d-10;else if(!b)if(!c) d=15;else d=25;printf("d=%d\n",d);}A) d=10 B) d=15 C) d=20 D) d=2513.下面程序的输出结果为____main(){ int a=1,b=0;switch(a)推荐精选{ case 1: switch (b){ case 0: printf("**0**"); break;case 1: printf("**1**"); break;}case 2: printf("**2**"); break;}}A) **0** B) **0****2** C) **0****1****2** D) 有语法错误14.下面程序的输出是____。
main(){ int num=0;while(num<=2){ num++;printf("%d\n",num);}}A) 1 B) 1 C) 1 D) 12 2 23 34 15.下面程序的输出结果是____include #include main( ){ char str[100] ="How do you do";strcpy( str + strlen(str)/2, "es she");printf("%s\n", str);}A) How do you do B) es sheC) How are you D) How does she16. 有以下程序 main() {char a[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d ",i,j); } 程序运行后的输出结果是______ A) 9,9 B) 8,9 C) 1,8 D) 9,8 17.以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。
void reverse(int a[],int n) 推荐精选{ int i,t; for(i=0;imain(){ int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf("%d\n",m);}程序的运行结果是 。
A)0 B)1 C)2 D)320. 有以下程序void f(int v, int w){ int t; t=v;v=w;w=t;}main(){ int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z);推荐精选 else f(x,z); printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是 A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1三、程序填空(每题4分,共16分)1.下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数main(){ int i,j;for(i=0; ;i++){ j=i*10+6;if( ) countinue;printf("%d",j);}}2.下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数hcf(int m,int n){ int r;if(m
include main(){ char *s="Beijing ligong daxue";int i,j;推荐精选for(i=j=0;s[i]!='\0';i++)if(s[i]!= ' ') ① ;else ② ;s[j]= '\0';printf("%s",s);}4.下面程序的功能是显示具有n个元素的数组s中的最大元素define N 20main(){ int i,a[N];for(i=0;is[k]) ② ;return(k);}四、写出以下程序运行结果(每题3分,共12分)阅读下列程序,将输出结果写到各题右侧的空白处1.main(){int x=15;while(x<20){x++;if(x。