广西民族大学C语言程序设计专升本考题

本试卷为广西民族大学C语言程序设计专升本考题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

C语言程序设计专升本考题

一、理论基础 (共20题,每题1分,共计10分)

(  B  )
1、在c语言程序中可用做用户标识符的是________。
A、void
B、aa
123 _abc
BBN cas
C、as+b3
D、6f
—123 Do
If SIG
(  D  )
2、若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是________。
A、read(a,b,c);
B、scanf("%d%d%d",a, b, c);
C、scanf("%D%D%D",&a,%b,%c);
D、scanf("%d%d%d",&a,&b,&c);
(  D  )
3、以下c语言用户标识符中,不合法的是________。
A、_1
B、AaBc
C、a b
D、a--b
(  B  )
4、以下各标识符中,合法的是 。
A、A&M
B、_sum
C、float
D、2x1
(  B  )
5、以下定义语句中,错误的是 __________.
A、int a[]={1,2};
B、char a={"test"};
C、char s[10]={"test"};
D、int a[]={'a','b','c'};
(  B  )
6、下列语句顺序执行后,a的值是________。 int a=13; a%=a/5;
A、0
B、1
C、1.0
D、true
(  D  )
7、下面赋值语句中正确的是________。
A、a=7+b+c=a+7;
B、a=7+b++=a+7;
C、a=7+b,b++,a+7;
D、a=7+b,C=a+7;
(  A  )
8、设有定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是______。
A、k++
B、k+=1
C、++k
D、k+1
(  C  )
9、在标准ascii码表中,已知英文字母a的十进制码值是65,英文字母a的十进制码值是________。
A、95
B、96
C、97
D、91
(  D  )
10、一个c语言程序在一台32位机器上运行。程序中定义了三个变量x,y,z,其中x和z是int型,v为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x,y,z的值分别是________。
A、x=0000007FH,y=FFF9H,z=00000076H
B、x=0000007FH,y=FFF9H,z=FFFF0076H
C、x=0000007FH,y=FFF7H,z=FFFF0076H
D、x=0000007FH,y=FFF7H,z=00000076H
(  A  )
11、某c语言程序中,x是一个浮点型变量,m是一个值为正整数的整型常量,表达式x%m(x被m除取余数)在 (1) 时会报错,这是一种 (2) 错误。(1)处填________。
A、编译
B、预处理
C、编辑
D、运行
(  B  )
12、c语言提供的合法的数据类型关键字是______?
A、Double
B、float
C、integer
D、Char
(  B  )
13、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是________。
A、0,0
B、0,1
C、1,0
D、1,1
(  B  )
14、设ch是char型变量,其值为a,且有下面的表达式ch=(ch>='a'&&ch<='z')?(ch+32):ch 。上面表达式的值是______。
A、A
B、a
C、Z
D、z
(  A  )
15、若变量已正确说明为float类型,要通过语句 scanf("%f %f %f",&a,&b,&c); 给a赋予10.0,b赋予22.0,c赋予33.0,正确的输入形式是________。
A、10 22 33
B、10.0,22.0,33.0
C、10.022.033.0
D、10; 22; 33
(  C  )
16、在c语言中,只有在使用时才占用内存单元的变量,其存储类型是________。
A、auto和static
B、extern和register
C、auto和register
D、static和register
(  C  )
17、若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为________。
A、p1=&ch; scanf("%c",p1);
B、p2=(char *)malloc(1);scanf("%c",p2);
C、*p3=getchar();
D、p4=&ch;*p4=getchar();
(  B  )
18、为了避免在嵌套的条件语句if-else 中产生二义性,c 语言规定: else子句总是与配对________。
A、缩排位臵相同的if
B、其之前最近的没有else配对的if
C、其之后最近的if
D、同一行上的if
(  B  )
19、对说明语句int a[10]={6,7,8,9,10};
的正确理解是________。
A、将5 个初值依次a[1]至a[5]
B、将5 个初值依次a[0]至a[4]
C、将5 个初值依次a[5]至a[9]
D、将5 个初值依次a[6]至a[10]
(  D  )
20、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为__________。
A、a < > 0
B、!a
C、a=0
D、a!=0

二、控制结构 (共10题,每题1分,共计10分)

(  B  )
1、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
A、if(x>0)y=1;
B、if(x)
else if(x>0)y=1;
else y=0; else if(x%0)y=-1;
else y=0;
C、y=-1
D、y=0;
if(x) if(x>=0)
if(x>O)y=1; if(xi>=O)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
(  C  )
2、运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为
#include <stdio.h>
main( )
{
int v1=0,v2=0;
char ch;
while ((ch=getchar( ))!='#') switch(ch)
{
case 'a': case 'h': default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
A、2,0
B、5,0
C、5,5
D、2,5
(  C  )
3、有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是________。
A、a=a+b=b++
B、w%((int)a+b)
C、(c+w)%(int)a
D、w=a==b
(  D  )
4、下列描述正确的是________。
A、表示m>n为true或m<n为true的表达式为m>n&&m<n
B、switch语句结构中必须有default语句
C、if语句结构中必须有else语句
D、如果至少有一个操作数为true,则包含||运算符的表达式为true
(  A  )
5、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
A、2
B、3
C、43
D、44
(  B  )
6、以下if语句书写正确的是________。
A、if(x=0;)
printf("%f",x);
elseprintf("%f",-x);
B、if(x>0)
x=x+1;printf("%f",x);
else printf("%f",-x);
C、if(x>0);
x=x+1;printf("%f",x);
else printf("%f",-x);
D、if(x>0)
x=x+1;printf("%f",x)
else printf("%f",-x);
(  C  )
7、c语言中下面哪个不是条件语句?
A、if
B、if else
C、NSLog
D、switch
(  B  )
8、以下叙述中正确的是________。
A、在 C 语言中,逻辑真值和假值分别对应 1 和 0
B、关系运算符两边的运算对象可以是语言中任意合法的表达式
C、对于浮点变量 x 和 y,表达式:x==y 是非法的,会出编译错误
D、分支结构是根据算术表达式的结果来判断流程走向的
(  C  )
9、以下叙述中正确的是________。
A、对于逻辑表达式:a++||b++,设 a 的值为 1,则求解表达式的值后,b的值会发生改变
B、对于逻辑表达式:a++&&b++,设 a 的值为 0,则求解表达式的值后,b的值会发生改变
C、else 不是一条独立的语句,它只是 if 语句的一部分
D、关系运算符的结果有三种:0,1,-1
(  C  )
10、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
A、if(x++);
B、if(x>y && y!=0);
C、if(x>0) x--
D、if(y<0) {;}

三、循环结构 (共10题,每题1分,共计10分)

(  B  )
1、若i、j已定义成int型,则下列程序段中内循环体的总执行次数是________。
for(i=6;i>0;i--) for(j=0;j<4;j++)
{
…
}
A、20
B、24
C、25
D、30
(  C  )
2、以下程序段________. x=-1;
do
{
x=x*x;
}
while(!x);
A、是死循环
B、循环执行二次
C、循环执行一次
D、有语法错误
(  B  )
3、定义如下变量: int n=10; 则下列循环的输出结果是________。 while(n>7)
{
n--;
printf("%d\n",n);
}
A、10
9
8
B、9
8
7
C、10
9
8
7
D、9
8
7
6
(  D  )
4、假定等级和分数有以下对应关系: 等级: a 分数: 85 ~ 100 等级: b 分数: 60 ~ 84 等级: c 分数: 60 以下 对于等级 grade 输出相应的分数区间,能够完成该功能的程序段是 __________.
A、switch (grade)
{
case 'A':printf("85--100\n");
case 'B':printf("60--84\n");
case 'C':printf("60 以下 \n");
default:printf(" 等级错误 !\n");
}
B、switch (grade)
{
case 'A':printf("85--100\n");break;
case 'B':printf("60--84\n");
case 'C':printf("60 以下 \n");
default:printf(" 等级错误 !\n");
}
C、switch (grade)
{
case 'A':printf("85--100\n");break;
case 'B':printf("60--84\n");break;
case 'C':printf("60 以下 \n");
default:printf(" 等级错误 !\n");
}
D、switch (grade)
{
case 'A':printf("85--100\n");break;
case 'B':printf("60--84\n");break;
case 'C':printf("60 以下 \n");break;
default:printf(" 等级错误 !\n");}
(  B  )
5、若 i 为整型变量 , 则以下循环语句的循环次数是 ____. for(i=2;i==0;) printf("%d",i--);
A、无限次
B、0 次
C、1 次
D、2 次
(  D  )
6、c语言中下列叙述正确的是_______。
A、不能使用do...while语句构成的循环
B、do...while语句构成的循环,必须用break语句才能退出
C、do...while语句构成的循环,当while语句中的表达式值为非零时结束循环
D、do...while语句构成的循环,当while语句中的表达式值为零时结束循环
(  C  )
7、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
A、15
B、50
C、55
D、5
(  C  )
8、以下不正确的是 ______。
A、语句for(i=0:;i++)表示无限循环
B、for(; ;)表示无限循环
C、for()也表示无限循环
D、while(1)表示无限循环
(  C  )
9、有以下程序
#include<stdio.h>
main ()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
x++;
}
printf ("x=%d\n", x);
}
程序执行后的输出结果是______。
A、x=8
B、x=4
C、x=6
D、x=12
(  D  )
10、下列语句哪些不属于循环语句?
A、for
B、while
C、do while
D、if

四、数组/指针数组 (共10题,每题1分,共计10分)

(  D  )
1、合法的数组定义是 __________.
A、int a[6]={"string"};
B、int a[5]={0,1,2,3,4,5};
C、char a={"string"};
D、char a[]={0,1,2,3,4,5};
(  C  )
2、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
A、printf("%s%s",s1[5],s2[7]);
B、printf("%c%c",s1,s2);
C、puts(s1);puts(s2);
D、puts(s1,s2);
(  C  )
3、在c语言中引用数组元素时,其数组下标的数据类型只能是________。
A、整型常量
B、整型表达式
C、整型常量或整型表达式
D、任何类型的表达式
(  D  )
4、已知:char s[100]; int i; 则引用数组元素的错误的形式是________。
A、s[i+10]
B、*(s+i)
C、*(i+s)
D、*((s++)+i)
(  A  )
5、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
A、a[2]="WIN"
B、strcpy(a[2],"WIN")
C、a[2][3]='W'
D、a[0][1]=a[0][1]
(  B  )
6、不能把字符串"hello!"赋给数组b的语句是______。
A、char b[10]='H','e','l','l','o','!';
B、char b[10]='h','e','l','l','o','!';
C、char b[10];strcpy(b,"Hello!");
D、char b[10]="Hello!":
(  D  )
7、在执行int arr[][3] = {1,2,3,4,5,6 },语句后,arr[1][0]的值为________。
A、4
B、1
C、2
D、5
(  A  )
8、算法指的是________。
A、解决问题的方法、步骤和思路的一种描述
B、计算机程序
C、排序方法
D、数据处理
(  C  )
9、若有定义: int (*p)[4];
则标识符p 。
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个指针,它指向一个含有四个整型元素的一维数组
D、定义不合法
(  D  )
10、若有说明: int a[3][4]={0};则下面正确的叙述是()。
A、只有元素 a[0][0]可得到初值 0
B、此说明语句不正确
C、数组 a 中各元素都可得到初值,但其值不一定为 0
D、数组 a 中每个元素均可得到初值 0

五、字符串/字符串指针 (共10题,每题1分,共计10分)

(  A  )
1、下列字符串是标识符的是________。
A、aa
B、a-class
C、int
D、LINE 1
(  C  )
2、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
A、gets(s);
B、while((s[i++]=getchar())!=‘\n’);s[i]=‘\0’;
C、scanf(“%s”,s);
D、do{ scanf(“%c”,&s[i]); } while(s[i++]!=‘\n’); s[i]=‘\0;
(  B  )
3、以下程序段的执行结果为
#define PLUS(X,Y)X+Y
main()
{
int x=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
}
A、SUM=9
B、SUM=12
C、SUM=18
D、SUM=28
(  B  )
4、有以下程序
#include<stdio.h>
main()
{
char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n", n);
}
程序运行后的输出结果是______。
A、0
B、3
C、7
D、8
(  D  )
5、以下程序运行后的输出结果是
main( )
{
char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
A、ABCD
BCD
CD
D
B、A
B
C
D
C、B
C
D
D、BCD
CD
D
(  B  )
6、字符串"xyz"在内存占用的字节数是______。
A、3
B、4
C、6
D、8
(  C  )
7、判断两个字符串是否相等,正确的表达方式是________。
A、while(s1==s2)
B、while(s1=s2)
C、while(strcmp(s1,s2)==0)
D、while(strcmp(s1,s2)=0)
(  A  )
8、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
A、x[i++]
B、y[++i]
C、x[i]
D、y[i]
(  A  )
9、从键盘上输入某字符串时,不可使用的函数是()。
A、getchar()
B、gets()
C、scanf()
D、fread()
(  B  )
10、以下语句中,不能实现回车换行的是()。
A、printf("\n");
B、putchar("\n");
C、fprintf(stdout,"\n");
D、fwrite("\n",1,1,stdout);

六、函数/函数指针 (共10题,每题1分,共计10分)

(  C  )
1、有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):
main()
{
char a[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序运行后的输出结果是________。
A、al2xyz
B、12yz
C、a2yz
D、bc2yz
(  C  )
2、当用户要求输入的字符串中含有空格时,应使用的输入函数是________。
A、getchar()
B、scanf()
C、gets()
D、getc()
(  A  )
3、以下对c语言函数的有关描述中,正确的是________。
A、在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B、C函数既可以嵌套定义又可以递归调用
C、函数必须有返回值,否则不能使用函数
D、函数必须有返回值,返回值类型不定
(  C  )
4、若定义了以下函数:
void f(……)
{
……*p=(double*)malloc(10*sizeof(double));
……
}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是______。
A、double *p
B、float **p
C、double **p
D、float *p
(  C  )
5、设有以下语句:char str1[]="string",str2[8],*str3,*str4="string"; 则下列选项中,______不是对库函数strcpy的正确调用,此库函数用来复制字符串。
A、strcpy(str1,"HELLO1");
B、strcpy(str2,"HELLO2");
C、strcpy(str3,"HELLO3");
D、strcpy(str4,"HELLO4");
(  B  )
6、以下对局部变量描述错误的是________。
A、在函数内部定义的变量
B、在程序的全部执行过程中一直占用存储单元。
C、在main函数中定义的变量是局部变量
D、形式参数也是局部变量。
(  A  )
7、关于函数参数,说法正确的是________。
A、实参与其对应的形参各自占用独立的内存单元
B、实参与其对应的形参共同占用一个内存单元
C、只有当形参与实参同名时才占用同一个内存单元
D、形参是虚拟的,不占用内存单元
(  B  )
8、以下叙述中错误的是________。
A、main()是 C 语言主函数的起始
B、main()作为主函数必须位于源程序的起始位置行
C、main()是 C 程序执行的起始行
D、main 是不可替代的主函数名
(  D  )
9、函数的形式参数隐含的存储类型说明是________。
A、extern
B、static
C、register
D、auto
(  B  )
10、c语言中不可以嵌套的是________。
A、函数调用
B、函数定义
C、循环语句
D、选择语句

七、指针 (共10题,每题1分,共计10分)

(  B  )
1、下列数据中为字符串常量的是________。
A、'A'
B、"9"
C、How do you do
D、'$abd'
(  B  )
2、若要求从键盘读入含有空格字符的字符串,应使用函数
A、getc()
B、gets()
C、getchar()
D、scanf()
(  D  )
3、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是 __________.
A、实参将其地址传递给形参,并释放原先占用的存储单元
B、实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C、实参将其值传递给形参,调用结束时形参再将其值回传给实参
D、实参将其值传递给形参,调用结束时形参并不将其值回传给实参
(  B  )
4、有如下函数调用语句 func(rec1,rec2+rec3,rec4, rec5); 该函数调用语句中 , 含有的实参个数是 __________.
A、3
B、4
C、5
D、有语法错误
(  D  )
5、请阅读程序:
#include<math.h>
#include<stdio.h>
main()
{
float a,b,c;
scanf("%f%f",&a,&b);
c=a/b;
while(1) {
if(fabs(c)>1.6) {
a=b;
b=c;
c=a/b;
}
else break;
}
printf("%f\n",b);
}
若运行时从键盘上输入3.6 2.4<回车>,则输出结果是______。
A、1.500000
B、1.600000
C、2.000000
D、2.400000
(  D  )
6、下列能正确定义字符串的语句是________。
A、char str[]='\64';
B、char str="kx43";
C、char str=";
D、char str[]="\0";
(  D  )
7、若有定义:char*x="abcdefghi"; 以下选项中正确运用了strcpy函数的是______。
A、char y[10];strcpy(y,x[4]);
B、char y[10];strcpy(++y,&x[1]);
C、char y[10],*s;strcpy(s=y+5,x);
D、char y[10],*s;strcpy(s=y+1,x+1);
(  C  )
8、以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。
#include <string.h>
void f(char p[][10],int n)
{
char t[20];
int i,j;
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)if(strcmp(p[i],p[j])<0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
main()
{
char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是______。
A、6
B、4
C、5
D、3
(  A  )
9、若定义语句: int b[ ]= { 1,2,3,4,5},*p=b ;
则表达式*p++ 的值是________。
A、1
B、2
C、b[0] 的地址
D、b[1] 的地址
(  A  )
10、以下函数调用语句中实参的个数是()。
func((e1,e2),(e3,e4,e5));
A、2
B、3
C、5
D、语法错误

八、结构体 (共10题,每题1分,共计10分)

(  B  )
1、有以下程序
#include <stdlib.h>
struct node
{
int num;
struct node *next;
};
main( )
{
struct node *p,*q,*r;
int sum=0;
p=(struct node *)malloc(sizeof(struct node));
q=(struct node *)malloc(sizeof(struct node));
r=(struct node *)malloc(sizeof(struct node));
p->num=1;
q->num=2;
r->num=3;
p->next=q;
q->next=r;
r->next=null;
sum+=q->next->num;
sum+=p->num;
printf("%d\n",sum);
}
执行后的输出结果是________。
A、3
B、4
C、5
D、6
(  B  )
2、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
A、PER 是结构体变量名
B、PER是结构体类型名
C、typedef struct 是结构体类型
D、struct 是结构体类型名
(  C  )
3、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
A、4
B、7
C、102
D、103
(  B  )
4、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
A、num=1002;
B、w.grade1=85;
C、pw->num=1002;
D、w.s.grade2=85;
(  C  )
5、设有以下语句:
typedef struct tt { char c; int a[4]; } cin; 则下面叙述中正确的是________。
A、可以用TT定义结构体变量
B、TT是struct类型的变量
C、可以用CIN定义结构体变量
D、CIN是struct TT类型的变量
(  B  )
6、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是
struct node char data;
struct node*next;
a,b,*p=&a,*q=&b;
A、next=q;
B、next=&b;
C、p->next=&b;
D、(*p).next=q;
(  A  )
7、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
A、6
B、8
C、10
D、12
(  D  )
8、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
A、scanf("%d",&(*p).age);
B、scanf("%c",&std[0].gender);
C、scanf("%c",&(p->gender));
D、scanf("%s",&std.name);
(  A  )
9、以下叙述中正确的是________。
A、使用 typedef 定义新类型名后,新类型名与原类型名实际上是等价的
B、结构体类型中的各个成分均不能是数组或指针
C、结构体类型的变量,不能在声明结构体类型组成时一起定义
D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
(  C  )
10、有以下程序
struct stu
{
char num[10];
float score[3];
};
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s+2;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
A、250.00
B、250
C、285.00
D、285

九、程序题 (共10题,每题1分,共计10分)

(  B  )
1、若有以下程序段: int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%a",a,b,c);执行后的输出结果是________。
A、3,0,-10
B、0,0,5
C、-10,3,-10
D、3,0,3
(  A  )
2、分析以下程序的输出结果是________。
main()
{
int a=5,b=-1,c;
c=adds(a,b);
printf("%d",c);
c=adds(a,b);
printf("%d\n",c);
}
int adds(int x,int y)
{
static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);
}
A、2,3
B、2,2
C、3,2
D、2,4
(  B  )
3、有以下程序
main() {
int i, j,m =55;
for(i=l;i<3;i++) for(j=3;j<=++) m=m%j;
printf("%d\n",m);
}
程序的运行结果是________。
A、0
B、1
C、2
D、3
(  A  )
4、有以下程序
#include <stdio.h>
#include <string.h>
void fun(char *s[ ],int n)
{
char *t;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j]))
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
main()
{
char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);
printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是________。
A、xy,aaaacc
B、aaaacc,xy
C、bcc,aabcc
D、aabcc,bcc
(  A  )
5、执行下面程序时 , 若从键盘输入 "2<cr>" ,则程序的运行结果是 __________.
#include <stdio.h>
void main( )
{
int k;
char cp;
cp=getchar( );
if (cp>='0' && cp<='9') k=cp-'0';
else if (cp>='a' && cp<='f') k=cp-'a'+10;
else k=cp-'a'+10;
printf("%d\n",k);
}
A、2
B、4
C、1
D、10
(  C  )
6、以下程序的输出结果是
main ( ) {
double d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A、1.0
B、0.96
C、0
D、1
(  D  )
7、有以下程序
main()
{
char a[]={'a','b','c','d','e','f','g','h','\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
程序运行后的输出结果是______。
A、9,9
B、8,9
C、1,8
D、9,8
(  B  )
8、有以下程序
main()
{
char a1='m',a2='m';
printf("%c\n",(a1,a2));
}
以下叙述中正确的是______。
A、程序输出大写字母M
B、程序输出小写字母m
C、格式说明符不足,编译出错
D、程序运行时产生出错信息
(  C  )
9、以下程序的输出结果是________。
main() 
{
int a=100;
printf("%d\n",++a);
 
}
A、0
B、100
C、101
D、无法确定
(  C  )
10、执行以下程序后的输出结果是________。
int w=3,z=7,x=10;
printf("%d",x>10?x+100:x-10);
printf("%d",w++||z++);
printf("%d",!w>z);
printf("%d",w&&z);
A、0111
B、1111
C、0101
D、0100