西安外国语大学2023年C语言程序设计期末相关题目

本试卷为西安外国语大学2023年C语言程序设计期末相关题目,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

C语言程序设计期末相关题目

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

(  A  )
1、设int x=7,则~x的值是________。
A、-8
B、7
C、-1
D、1
(  B  )
2、若变量已正确定义并赋值,符合c语言语法的表达式是________。
A、a=a+7:
B、a=7+b+e,a++
C、int(12.3%4)
D、a=a+7=c+b
(  D  )
3、在位运算中,操作数每左移两位,其结果相当于________。
A、操作数乘以2
B、操作数除以2
C、操作数除以4
D、操作数乘以4
(  C  )
4、若ch为char型变量,k为int型变量(已知字符a的ascil码是97),则执行下列语句后输出的结果为( )。
ch='b'; k=10;
printf("%x,%0,",ch,ch,k);
printf("k=%%d\n",k);
A、因变量类型与格式描述符的类型不匹配,输出无定值
B、输出项与格式描述符个数不符,输出为0或不定值
C、62,142,k=%d
D、62,142,k=%10
(  A  )
5、若变量已正确定义,在语句"if(w)printf("%d\n",k);"中,以下不可替代w的是________。
A、a<>b+c
B、ch=getchar()
C、a==b+C
D、a++
(  D  )
6、有如下定义类型语句,若从键盘输入数据,正确的输入语句是________。 int x; char y; char z[20];
A、scanf("%d%c%c",&x,&y,&z);
B、scanf("%d%c%s",&x,&y,&z);
C、scanf("%d%c%c",&x,&y,z);
D、scanf("%d%c%s",&x,&y,z);
(  D  )
7、下列选项不符合良好程序设计风格的是________。
A、源程序要文档化
B、数据说明的次序要规范化
C、避免滥用goto语句
D、模块设计原则是高耦合、高内聚
(  C  )
8、以下关于运算符优先顺序的描述中正确的是 。
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑与运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
(  B  )
9、将十进制数0.625转换成二进制数是________。
A、0.111
B、0.101
C、0.5
D、0.A
(  B  )
10、设x为int型变量,则执行语句x=10和x+=x-=x-x后,x的值为:
A、10
B、20
C、40
D、30
(  A  )
11、若有定义语句: int a[4][10],*p,*q[4]; 且0<=i<4,则错误的赋值是________。
A、p=a
B、q[i]=a[i]
C、p=a[i]
D、p=&a[2][1]
(  D  )
12、设int b=2; 表达式(b<<2)/(b>>1)的值是________。
A、2
B、4
C、6
D、8
(  D  )
13、按照运算符功能的划分,运算符==属于________。
A、扩展赋值运算符
B、二元运算符
C、算术运算符
D、关系运算符
(  D  )
14、是不正确的c语言赋值语句。
A、x=1, y=2
B、x ++
C、x=y=5
D、y=int(x);
(  C  )
15、以下叙述中不正确的是________。
A、预处理命令行都必须以撑号开始,结尾不加分号
B、在程序中凡是以#号开始的语句行都是预处理命令行
C、C程序在执行过程中对预处理命令进行处理
D、预处理命令可以放在程序中的任何位置
(  B  )
16、已知整型变量a=13和b=6,则a&b和a^b的值分别是________。
A、4 13
B、4 11
C、1 11
D、1 13
(  B  )
17、流程图中,输入/输出框用( )图形表示?
A、圆角矩形
B、平行四边形
C、矩形
D、菱形
(  C  )
18、与数学式子3乘以x的n次方/(2x-1)对应的c语言表达式是______。
A、3*x^n/(2*x-1)
B、3*x**n/(2*x-1)
C、3*pow(x,n)*(1/(2*x-1))
D、3*pow(n,x)/(2*x-1)
(  C  )
19、以下数值中,不正确的八进制数或十六进制数是________。
A、0x16
B、016
C、-16
D、0xaaaa
(  A  )
20、设 int b=2;
表达式(b>>2)/(b>>1) 的值是________。
A、0
B、2
C、4
D、8

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

(  C  )
1、在嵌套使用if语句时,c语言规定else总是________。
A、和之前与其具有相同缩进位置的if配对
B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对
D、和之前的第一个if配对
(  D  )
2、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
A、k%2
B、k%2==1
C、(k%2)!=0
D、!k%2==1
(  C  )
3、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
A、y=0,a
B、y=0,a
y=1,a≥b y一1,a≥b且c≠d
C、y=0,a
D、y=0,a
y=1,a<B且C≠D y="1,c≠d
(  C  )
4、关于结构化程序设计原则和方法的描述错误的是________。
A、选用的结构只准许有一个入口和一个出口
B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C、不允许使用GOTO语句
D、语言中若没有控制结构,应该采用前后一致的方法来模拟
(  A  )
5、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
A、可以是任意合法的表达式
B、必须是逻辑表达式
C、必须是逻辑表达式或关系表达式
D、必须是关系表达式
(  B  )
6、有以下程序
#include <stdio.h>
main ()
{
int a = 5, b = 4, c = 3, d = 2;
if (a > b > c)
printf ("%d\n", d);
else if ((c - 1 >= d) == 1)
printf ("%d\n", d + 1);
else
printf ("%d\n", d + 2);
}
执行后输出的结果是________。
A、2
B、3
C、4
D、编译时有错,无结果
(  C  )
7、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
A、0,1,2
B、1,2,3
C、1,1,3
D、1,2,2
(  C  )
8、下列if语句中,不正确的是________。
A、if(x>y);
B、if(x==y) x+=y;
C、if(x!=y) scanf("%d",&x) else x=1;
D、if(x
(  B  )
9、将三个数排序需要比较________次。
A、2
B、3
C、4
D、不确定
(  D  )
10、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
A、-1
B、1
C、非零的数
D、0

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

(  A  )
1、下列叙述中正确的是________。
A、只能在循环体内和switch语句体内使用break语句
B、continue语句的作用是结束整个循环的执行
C、在循环体内使用break语句或continue语句的作用相同
D、从多层循环嵌套中退出时,只能使用got0语句
(  C  )
2、下面程序段中 , 循环体的执行次数是 ___________.
int a=10,b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
A、4
B、5
C、3
D、2
(  C  )
3、以下说法中不正确是________。
A、使用while循环时,循环变量初始化的操作应在循环语句之前完成
B、while循环是先判断表达式,后执行循环体语句
C、do-while和for循环均是先执行循环体语句,后判断表达式
D、for,while和for-while循环中的循环体均可以由空语句构成
(  D  )
4、下面有关for循环的正确描述是________。
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体
D、在for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
(  B  )
5、有下列程序:
main()
{
int i,j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是________。
A、1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3
B、1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9
C、1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9
D、1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9
(  B  )
6、以下程序的功能是计算s=1+12+123+1234+12345。
#include <stdio.h>
main()
{
int t=0,s=0,i;
for(i=1;i<=5;i++) {
t=i+_____;
s=s+t;
}
printf("s=%d\n",s);
}
则______部分是________。
A、t
B、t*10
C、t*100
D、t+10
(  C  )
7、运行下面程序时,从键盘输入字母h,则输出结果是
#include<stdio.h>
main()
{
char ch;
ch=getchar();
switch(ch) {
case ’h’: printf("hello!\n");
case ’g’: printf("good morning!\n");
default : printf("bye_bye!\n");
}
}
A、Hello!
B、Hello!
GoodMoring!
C、Hello!
Goodmorning!
Bye_Bye!
D、Hello!
Bye_Bye!
(  A  )
8、下面程序的运行结果是________。
#include <stdio.h>
void main()
{
int y=10;
do
{
y--;
}
while(--y);
printf("%d\n",y--);
}
A、-1
B、1
C、8
D、0
(  C  )
9、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
A、+-+-+- $
B、-+-+-+ $
C、+-+- $
D、-+-+ $
(  B  )
10、以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
A、无
B、######
C、#
D、###

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

(  B  )
1、以下数组定义中错误的是________。
A、int x[][3]={0};
B、int x[2][3]={{l,2},{3,4},{5,6}};
C、int x[][3]={{l,2,3},{4,5,6}};
D、int x[2][3]={l,2,3,4,5,6};
(  B  )
2、有以下定义 char a[10],*b=a; 不能给数组a输入字符串的语句是________。
A、gets(a);
B、gets(a[0]);
C、gets(&a[0]);
D、gets(b);
(  B  )
3、以下能正确定义一维数组的选项是________。
A、int num[];
B、#define N 100
int num[N];
C、int num[0..100];
D、int N=100;
int num[N];
(  D  )
4、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]= { 5,4,3,2,1 },*p[]= { a+3,a+2,a+1,a },**q=p;
A、8
B、7
C、6
D、5
(  B  )
5、下列对c语言字符数组的描述中正确的是________。
A、任何一个一维数组的元素在引用时,其下标可以是整型、实型或字符型常量
B、一维数组的元素实质上就是一个变量,代表内存中的一个存储单元
C、如果要引用数组中的每一个元素,则直接使用该数组名称即使
D、以上都不对
(  B  )
6、下列二维数组初始化语句中,正确且与语句int a[][3]= { 1,2,3,4,5 }等价的是________。
A、int a[2][]={{1,2,3},{4,5}};
B、int a[][3]={1,2,3,4,5,0};
C、int a[][3]={{1,0},{2,0},{3,0}};
D、int a[2][]={{1,2,3},{4,5,6}};
(  C  )
7、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
A、LANGUAGE
B、language
C、LAN
D、langUAGE
(  C  )
8、下面程序段的运行结果是________。
char * format="%s,a=%d,b=%d\n";
int a=11,b=10;
a+=b;
printf(format,"a+=b",a,b);
A、for,"a+=b",ab
B、format,"a+=b"
C、a+=b,a=21,b=10
D、以上结果都不对
(  C  )
9、若有说明:int a[][4]={1,1} 则以下叙述正确的是________。
A、数据 a 中第一行各元素的初值均为 1
B、数组 a 中每个元素均可得到初值 1
C、只有元素 a[0][0]和 a[0][1]可得到初值 1
D、只有元素 a[0][0]和 a[1][0]可得到初值 1
(  D  )
10、以下对一维数组a 的正确说明是________。
A、int n; scanf("%d",&n); int a[n];
B、int n=10,a[n];
C、int a(10);
D、#define SIZE 10int a[SIZE];

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

(  B  )
1、c语言中,下列不合法的字符串常量是________。
A、”\121”
B、'y='
C、”\n\n”
D、”ABCD\x6d”
(  C  )
2、以下不能将s所指字符串正确复制到t所指存储空间的是________。
A、while(*t=*s){t++;s++;)
B、for(i=0;t[i]=s[i];i++);
C、do {*t++=*s++;)while(*s);
D、for(i=0,j=o;t[i++]=s[j++];);
(  D  )
3、在c语言中,以 作为字符串结束标志
A、’\n’
B、’ ’
C、’0’
D、’\0’
(  A  )
4、下列字符串是标识符的是: 。
A、_HJ
B、9_student
C、long
D、LINE 1
(  C  )
5、以下能将字符串,you are luck!正确读入的语句组是________。
A、char s[80]; scanf("%s",s);
B、char *s: scanf("%s",s);
C、char s[80]; gets(s);
D、char *s; gets(3);
(  B  )
6、宏定义用于将一个标识符定义为一个
A、常量
B、字符串
C、整数
D、长整数
(  A  )
7、下列对字符串的定义中,错误的是________。
A、char str[7] = "FORTRAN";
B、char str[] = "FORTRAN";
C、char *str = "FORTRAN";
D、char str[] = {'F','O','R','T','R','A','N',0};
(  C  )
8、设 char *s="\ta\017bc";
则指针变量s指向的字符串所占的字节数 是________。
A、9
B、5
C、6
D、7
(  B  )
9、字符串指针变量中存入的是________。
A、字符串
B、字符串的首地址
C、第一个字符
D、字符串变量
(  C  )
10、判断两个字符串是否相等,正确的表达方式是________。
A、while(s1==s2)
B、while(s1=s2)
C、while(strcmp(s1,s2)==0)
D、while(strcmp(s1,s2)=0)

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

(  B  )
1、以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
#include <stdio.h>
#include <string.h>
char *scmp(char *s1, char *s2)
{
if(strcmp(s1,s2)<0) return(s1);
else return(s2);
}
main()
{
int i;
char string[20], str[3][20];
for(i=0;i<3;i++) gets(str[i]);
strcpy(string,scmp(str[0],str[1]));
/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf("%s\n",string);
}
若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A、abcd
B、abba
C、abc
D、abca
(  C  )
2、程序流程图中指有箭头的线段表示的是________。
A、图元关系
B、数据流
C、控制流
D、调用关系
(  A  )
3、在c语言中,main函数默认返回一个( )类型的值。
A、int
B、float
C、char
D、void
(  C  )
4、有如下函数定义;
void func(int a,int & b)
{
a++;
b++;
}
若执行代码段:int x=0,y=1;
func(x,y);
则变量x和y的值分别是________。
A、0和1
B、1和1
C、0和2
D、1和2
(  B  )
5、设int*p[4]; 则标识符p是________。
A、整型数组名
B、指针数组名
C、指针函数名
D、指向整型变量的指针
(  B  )
6、结构化程序设计方法的三种基本控制结构中不包括(. )。
A、循环结构
B、递归结构
C、顺序结构
D、选择结构
(  A  )
7、程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的________。
A、地址
B、类型
C、名称
D、值
(  C  )
8、请读程序:
#include <stdio.h>
func(int a, int b) {
int c;
c=a+b;
return c;
}
main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
上面程序的输出结果是________。
A、11
B、20
C、21
D、31
(  B  )
9、以下叙述中正确的是()。
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C、C 源程序经编译形成的二进制代码可以直接运行
D、C语言中的函数不可以单独进行编译
(  B  )
10、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、传递方式由用户指定

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

(  A  )
1、设有下列程序段: char str[]="helloworld"; char*ptr; ptr=str ;执行上面的程序段后,*(ptr+10)的值为________。
A、'\O'
B、'0'
C、不确定的值
D、'0'的地址
(  D  )
2、下列选项中,能正确定义数组的语句是________。
A、int num[0..2008];
B、int num [];
C、int N=2008; int num[N];
D、#define N 2008; int num[N];
(  C  )
3、已定义以下函数 fun(int *p)
{
return *p;
}
该函数的返回值是________。
A、不确定的值
B、形参p中存放的值
C、形参p所指存储单元中的值
D、形参p的地址值
(  B  )
4、语句int *p; 说明了 。
A、p是指向一维数组的指针
B、p是指向函数的指针,该函数返回一int型数据
C、p是指向int型数据的指针
D、p是函数名,该函数返回一指向int型数据的指针
(  C  )
5、排序的重要目的是为了以后对已排序的数据元素进行________。
A、打印输出
B、分类
C、查找
D、合并
(  D  )
6、下列关于函数参数的叙述中,正确的是________。
A、在函数原型中不必声明形参类型
B、函数的实参和形参共享内存空间
C、函数形参的生存期与整个程序的运行期相向
D、函数的形参在函数被调用时获得初始值
(  B  )
7、有如下定义: int a[5]= { 1,3,5,7,9 }, * p=a; 下列表达式中不能得到数值5的是________。
A、a[2]
B、a[3]
C、*(p+2)
D、*p+4
(  A  )
8、下列定义数组的语句中,正确的是______。
A、#define N 10
int x[N];
B、int N=10;
int x[N];
C、int x[0...10];
D、int x[];
(  A  )
9、下列程序的输出结果是________。
#include<stdio.h>
int fun(int x)
{
int p;
if(x==0‖x==1) return 3;
else p=x-fun(x-2);
return p;
}
void main()
{
print f("\n%d", fun(5));
}
A、5
B、3
C、7
D、1
(  D  )
10、下列关于函数的调用方式,说法不正确的是________?
A、可以将函数作为表达式调用
B、可以将函数作为语句调用
C、可以将函数作为实参调用
D、以上选项都错误

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

(  C  )
1、有以下程序
typedef struct
{
char name[9];
char sex;
float score [2];
} stu;
stu f(stu a) {
stu b={"zhao", 'm', 85.0, 90.0};
int i;
strcpy(a.name, b.name);
a.sex=b.sex:;
for(i=0;i<2;i++) a.score[i]=b.score[i];
return a:
}
main() {
stu c=
{
"qian", 'f', 95.0, 92.0
};
stu d=f(c);
printf("%s, %c, %2.0f, %2.0f", d.name, d.sex, d.score[0], d.score[1]); ) 程序的运行结果是________。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,m,85,90
D、Zhao,f,95,92
(  B  )
2、以下选项中不能正确把cl定义成结构体变量的是________。
A、typedef struct
{
int red;
int green;
int blue;
} COLOR;
COLOR cl;
B、struct color cl
{
int red;
int green;
int blue;
};
C、struct color
{
int red;
int green;
int blue;
} cl;
D、struct
{
int red;
int green;
int blue;
} cl;
(  C  )
3、若有以下说明语句:
struct date
{
int year;
int month;
int day;
} brithday;
则下面的叙述不正确的是_____.
A、struct是声明结构体类型时用的关键字
B、struct date 是用户定义的结构体类型名
C、brithday是用户定义的结构体类型名
D、year,day 都是结构体成员名
(  B  )
4、以下对枚举类型名的定义中正确的是______。
A、enum a={ one , two , three} ;
B、enum a {one=9 , two=-1 , three} ;
C、enum a={"one" , "two" , "three"} ;
D、enum a {"one" , "two" , "three"} ;
(  B  )
5、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu {
int i;
int name;
} st,*p; p=&st;
A、st.i
B、*p.i
C、(*p).i
D、p->i
(  D  )
6、若有以下说明和语句:
struct st
{
int n;
char *ch;
}
;
struct st a[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a 则值为6的表达式是______。
A、p++->n
B、p->n++
C、(*.n++
D、++p->n
(  D  )
7、有以下程序
#include <stdio.h>
main()
{
struct stu
{
char name[9];
char sex;
double score[2];
}
;
struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
(  B  )
8、定义file *fp; 则文件指针fp 指向的是________。
A、文件在磁盘上的读写位置
B、文件在缓冲区上的读写位置
C、整个磁盘文件
D、文件类型结构体
(  A  )
9、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
A、可以是任意合法的表达式
B、只能是整数 0 或非 0 整数
C、可以是结构体类型的数据
D、只能是整数 0 或 1
(  C  )
10、enum a
{
sum=9,mon=-1,tue
}
;
定义了________。
A、枚举变量
B、3个标识符
C、枚举数据类型
D、整数9和-1

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

(  D  )
1、下面程序段的运行结果是________. char a[7]="abcdef"; char b[4]="abc"; strcpy(a,b); printf("%c",a[5]);
A、空格
B、\0
C、e
D、f
(  B  )
2、阅读下面的程序
main()
{
int i,j;
float x,y;
scanf("%f,%f",&i,&j);
scanf("%f,%f",&x,&y);
printf("i=%d,j=%d\n",i,j);
printf("x=%f,y=%f\n",x,y);
}
如果从键盘上输入 32,18<回车> 12.5,-4.3<回车> 则程序的运行结果是________。
A、i=32,j=18
B、i=0,j=0
x=12.500000,y=-4.300000 x=12.500000,y=-4.300000
C、i=30,j=16
D、i=0,j=0
x=12.5,y=-4.3 x=12.5,y=-4.3
(  B  )
3、以下程序的输出结果是
char cchar(char ch)
{
if(ch>=‘a’&&ch<=‘z') ch=ch-‘a'+‘a';
return ch;
}
main()
{
char s[]="abc+abc=defdef",*p=s;
while(*p)
{
*p=cchar(*p);
p++;
}
printf("%s\n",s);
}
A、abc+ABC=DEFdef
B、abc+abc=defdef
C、abcaABCDEFdef
D、abcabcdefdef
(  D  )
4、有以下程序
#include <stdio.h>
void fun(char *t, char *s)
{
while(*t!=0) t++;
while((*t++=*s++)!=0);
}
min()
{
char ss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);
printf("%s,%s﹨n",ss,aa);
}
程序的运行结果是________。
A、accxyy, bbxxyy
B、axx, bbxxyy
C、accxxyy, bbxxyy
D、accbbxxyy, bbxxyy
(  D  )
5、若有以下定义和语句,则输出结果是______。
int **pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf("%d\n",*p,**pp);
A、10,20
B、10,10
C、20,10
D、20,20
(  C  )
6、请读程序:
#include<stdio.h>
#include<string.h>
void fun(char * w,int m) {
char s,* p1,* p2;
p1=w;
p2=w+m-1;
while(p1<p2) {
s=* p1++;
*pl=* p2 --;
* p2=s;
}
}
main( )
{
char a[]="abcdefg";
fun(a,strlen(a));
puts(a);
}
上面程序的输出结果是________。
A、GEFDCBA
B、AGADAGA
C、AGAAGAG
D、GAGGAGA
(  D  )
7、下面程序的输出结果是_______。
main( )
{
extern int m;
m+=2;
f( );
printf("%d\n",m);
}
int m=7;
f( )
{
printf("%d&",m*m);
m+=m;
}
A、8118
B、81&81
C、18&18
D、81&18
(  B  )
8、以下程序的输出结果是______。
main()
{
char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
int i ;
i=5;
p=a+i;
printf("%s\n",p-1);
}
A、5
B、56789
C、'5'
D、"56789"
(  D  )
9、有以下程序
void f(int x,int y)
{
int t;
if(x<y)
{
t=x;
x=y;
y=t;
}
}
main()
{
int a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
执行后输出的结果是______。
A、3,4,5
B、5,3,4
C、5,4,3
D、4,3,5
(  B  )
10、有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{
ptr=a+i;
scanf("%d",*ptr);
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++) printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是______。
A、产生错误信息
B、1 02 00 0
C、1 23 00 0
D、1 02 03 0
相关标签:
  • C语言
  • 西安外国语大学
  • 期末相关题目