盐城师范学院历年C语言程序设计复习题

本试卷为盐城师范学院历年C语言程序设计复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

C语言程序设计复习题

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

(  D  )
1、若变量已正确定义为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);
(  A  )
2、在c语言中,存储一个字符型、整型、单精度实型变量所需的空间是________。型、单精度实型变量所需的空间是________。
A、1、2、4
B、1、1、4
C、1、2、8
D、2、2、8
(  A  )
3、a,b均为整数,且b!=0,则表达式a/b*b+a%b的值是________。
A、a
B、b
C、a被b除的整数部分
D、a被b除的商的整数部分
(  B  )
4、在64位计算机中,一个字长所占字节数为________。
A、64
B、8
C、4
D、1
(  D  )
5、以下叙述中不正确的是________。
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在计算赋值表达式a=b后,b中的值将放入a中,而b中的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
(  D  )
6、设int a=0; 错误的语句是________。
A、++a;
B、a++;
C、a=-a;
D、(-++a);
(  D  )
7、与二进制数101.01011等值的十六进制数是________。
A、A.B
B、5.51
C、A.51
D、5.58
(  C  )
8、下列各进制的整数中,______表示的值最大。
A、十进制数10
B、八进制数10
C、十六进制数10
D、进制数10
(  C  )
9、在标准ascii码表中,已知英文字母a的十进制码值是65,英文字母a的十进制码值是________。
A、95
B、96
C、97
D、91
(  B  )
10、结构化程序设计主要强调的是________。
A、程序的规模
B、程序的易读性
C、程序的执行效率
D、程序的可移植性
(  C  )
11、结构化程序设计主要强调程序的()
A、效率
B、速度
C、可读性
D、大小
(  B  )
12、已知字母a的ascii代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是______。
A、kk>='A'&&kk<='Z'
B、!(kk>='A'||KK<='Z')
C、(kk+32)>='a'&&(kk+32)<='z'
D、kk>=65 && kk<=90
(  D  )
13、下面( )表达式的值为4。
A、11/3
B、11.0/3
C、(float)11/3
D、(int)(11/3+1)
(  C  )
14、若ch为char型变量,k为int型变量(已知字符a的ascii十进制代码为97), 则以下程序段的执行结果是________。 ch='a';
k=12;
printf("%x,%o,",ch,ch,k);
printf("k=%%d\n",k);
A、因变量类型与格式描述符的类型不匹配,输出无定值
B、输出项与格式描述符个数不符,输出为零值或不定值
C、61,141,k=%d
D、61,141,k=%12
(  C  )
15、若有定义: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  )
16、下列表达式中,可作为c合法表达式的是________。
A、[3,2,1,0]
B、(3,2,1,0)
C、3=2=1=0
D、3/2/1/0
(  B  )
17、下列运算符中优先级最高的是________。
A、<
B、+
C、&&
D、!=
(  B  )
18、表达式10!=12的值是________。
A、0
B、1
C、true
D、非零值
(  D  )
19、在c 语言中,退格符是________。
A、\n
B、\t
C、\v
D、\b
(  D  )
20、下列( )表达式的值为真,其中 a=5;b=8;c=10;d=0
A、a*2>8+2
B、a&&d
C、(a*2-c)||d
D、a-b

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

(  A  )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
A、1
B、0
C、2
D、不知道a的值,不能确定
(  C  )
2、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
A、0
B、1
C、2
D、3
(  C  )
3、运行以下程序后,如果从键盘上输入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  )
4、switch语句中表达式(expression)的值不允许用的类型是________。
A、byte
B、int
C、boolean
D、char
(  A  )
5、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
A、1 0
B、0 1
C、非0非0
D、1 1
(  A  )
6、有以下程序
main()
{
int i;
for(i=0;i<3;i++)
switch(i)
{
case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
执行后输出的结果是________。
A、011122
B、012
C、012020
D、120
(  A  )
7、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
A、1
B、3
C、2
D、4
(  C  )
8、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是________。
A、switch(x) {
case 1.0 : printf("*\n");
case 2.0 : printf("**\n");
}
B、switch((int)x); {
case 1 : printf("*\n");
case 2 : printf("**\n");
}
C、switch(a+b) {
case 1: printf("*\n");
case 2+1: printf("**\n");
}
D、switch(a+b) {
case 1 : printf("*\n");
case c : printf("**\n");
}
(  B  )
9、c语言的switch语句中case后____
A、只能为常量
B、只能为常量或常量表达式
C、可为常量或表达式或有确定值的变量及表达式
D、可为任何量或表达式
(  A  )
10、c语言的if语句中,用作判断的表达式为____
A、任意表达式
B、逻辑表达式
C、关系表达式
D、算术表达式

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

(  D  )
1、下面for语句的循环次数为( )。 for(x=1,y=0;(y!=19)&&(x<6);x++);
A、是无限循环
B、循环次数不定
C、最多执行6次
D、最多执行5次
(  B  )
2、若变量已正确定义,有以下程序段 i—o;
do printf("%d,",i);
while(i++);
printf("%d",i) 其输出结果是________。
A、0,0
B、0,1
C、1,1
D、程序进入无限循环
(  C  )
3、下面程序的运行结果是________。
main( )
{
int m=7,n=5,i=1;
do
{
if (i%m==0);
if (i%n==0)
{
printf("%d\n",i);
break;
}
i++;
}
while(i!=0);
}
A、7
B、6
C、5
D、4
(  A  )
4、有以下程序
#include <stdio.h>
main()
{
int c;
while ((c=getchar())!='\n')
{
switch(c-'2')
{
case 0: case 1: putchar(c+4);
case 2: putchar(c+4);
break;
case 3: putchar(c+3);
default: putchar(c+2);
break;
}
}
printf("\n");
}
从第一列开始输入以下数据,<cr>代表一个回车符。 2473<cr> 程序的输出结果是________。
A、668977
B、668966
C、66778777
D、6688766
(  A  )
5、以下for语句中不是死循环的是________。
A、for(int i=0;i<1;i++);
B、for(int i=0;i++);
C、for(int i=1;i>0;++i);
D、for( ;;);
(  D  )
6、程序设计语言中________。
A、while 循环语句的执行效率比do-while 循环语句的执行效率高
B、while 循环语句的循环体执行次数比循环条件的判断次数多1,而do-while 语句的循环体执行次数比循环条件的判断次数少1
C、while 语句的循环体执行次数比循环条件的判断次数少1,而do-while 语句的循环体执行次数比循环条件的判断次数多1
D、while 语句的循环体执行次数比循环条件的判断次数少1,而do-while 语句的循环体执行次数等于循环条件的判断次数
(  A  )
7、若变量已正确定义,对以下while循环结束条件的准确描述是________。
flag = 1;
denominator = 1;
item = 1.0;
pi = 0;
while(fabs(item) >= 0.0001)
{
item = flag * 1.0 / denominator;
pi = pi + item;
flag = -flag;
denominator = denominator + 2;
}
A、item的绝对值小于0.0001
B、item的绝对值大于0.0001
C、item的绝对值等于0.0001
D、item的绝对值不等于0.0001
(  B  )
8、关于循环体while的说法下列正确的是________。
A、循环体的执行次数总比条件表达式多一次
B、循环体的执行次数总比条件表达式少一次
C、循环体的执行次数与条件表达式无关
D、循环体的执行次数与条件表达式相等
(  B  )
9、以下叙述中正确的是________。
A、循环发生嵌套时,最多只能两层
B、三种循环 for, while,do-while 可以互相嵌套
C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误
D、for 语句的圆括号中的表达式不能都省略掉
(  A  )
10、执行以下循环语句时,下列说法正确的是________。x = -1;
do
{
x = x * x;
}
while (x == 0);
A、循环体将执行一次
B、循环体将执行两次
C、循环体将执行无限次
D、系统将提示有语法错误

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

(  B  )
1、以下能正确定义二维数组的是________。
A、int a[][3];
B、int a[][3]={2*3};
C、int a[][3]={};
D、int a[2][3]={{1},{2},{3,4}};
(  A  )
2、在c语言中对于实型数组,其每个数组元素的类型是________。
A、实型
B、整型
C、可以为任何类型
D、不确定
(  C  )
3、以下对二维数组a的正确说明是________。
A、int a[3][]
B、float a(3,4)
C、double a[1][4]
D、float a(3)(4)
(  B  )
4、当调用函数时,实参是一个数组名,则向函数传送的是 _______ 。
A、数组的长度
B、数组的首地址
C、数组每一个元素的地址
D、数组每个元素中的值
(  D  )
5、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
A、*((*ptr+1)[2])
B、a[2][3]
C、(*ptr+1)+2
D、*(*(a+1)+2)
(  A  )
6、下面关于数组的初始化正确的是________。
A、char str[ ] = {'a','b','c'}
B、char str[2]={'a','b','c'}
C、char str[2][3]={{'a','b',},{'c','d'},{'e','f'}}
D、char str( )={'a','b','c'}
(  A  )
7、设int a[10],*p=a; 数组元素a[4]的正确引用是________。
A、*(p+4)
B、p+4
C、*p+4
D、a+4
(  D  )
8、已有定义:int i,a[10],*p; 则合法的赋值语句是________。
A、p=100;
B、p=a[5]
C、p=a[2]+2
D、p=a+2;
(  A  )
9、下面程序的运行结果是
#include<stdio.h>
main()
{
static char a[]="languagef" ,b[]="programe";
char *p1,*p2;
int k;
p1=a;
p2=b;
for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
A、gae
B、ga
C、LanSuage
D、有语法错
(  C  )
10、设有如下定义:char*aa[2]="abcd","abcd",则以下说法中正确的是________。
A、aa数组中元素的值分别是"abcd","ABCD";
B、aa是指针变量,它指向含有两个数组元素的字符型一维数组
C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D、aa数组的两个元素中各自存放了字符‘a’和‘A’的地址

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

(  D  )
1、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
A、if(s1>s2)S;
B、if(strcmp(s1,s2))S;
C、if(strcmp(s2,sl)>O)S;
D、if(stremp(s1,s2)>O)S;
(  C  )
2、下面各语句行中,能正确进行字符串赋值操作的语句是______。
A、char ST[5]={"ABCDE"} ;
B、char S[5]={'A' , 'B' , 'C' , 'D' , 'E'} ;
C、char *S ; S="ABCDE" ;
D、char *S ; scanf ( "%S" , S );
(  D  )
3、下列字符串中,正确的c标识符是________。
A、foo-1
B、2b
C、new
D、256
(  C  )
4、null是指 ________。
A、0
B、空格
C、未知的值或无任何值
D、空字符串
(  B  )
5、下列选项中,值为1的表达式是________。
A、1-'0'
B、1-'\0'
C、'1'-0
D、'\0','0'
(  B  )
6、设有以下程序段: int a[5]=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是________。
A、p+q
B、p-q
C、p*q
D、p%q
(  C  )
7、下列表达式中,类型可以作为int型的是________。
A、"abe"+"efg"
B、"abc"+"efg"
C、'a'+'b'
D、3+"4"
(  C  )
8、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
A、char st[4][5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s="ABCDE";
D、char *s; scanf("%s",*s);
(  D  )
9、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个______
A、单精度数
B、双精度数
C、常量
D、字符串
(  B  )
10、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
A、c=*p1+*p2;
B、p2=c;
C、p1=p2;
D、c=*p1*(*p2);

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

(  D  )
1、设函数fun的定义形式为________。
void fun(char ch, float x )
{
…
}
则以下对函数fun的调用语句中,正确的是________。
A、fun("abc",3.0);
B、t=fun('D',16.5);
C、fun('65',2.8);
D、fun(32,32);
(  C  )
2、若有以下程序
#include <stdio.h>
void f(int n);
main()
{
void f(int n);
f(5);
}
void f(int n)
{
printf("%d\n",n);
}
则以下叙述中不正确的是________。
A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C、对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
D、函数f无返回值,所以可用void将其类型定义为无值型
(  C  )
3、以下正确的说法是________。
A、定义函数时,形参的类型说明可以放在函数体内
B、return后边的值不能为表达式
C、如果函数值的类型与返回值类型不一致,以函数值类型为准
D、如果形参与实参类型不一致,以实参类型为准
(  C  )
4、计算斐波那契数列第n项的函数定义如下: int fib(int n)
{
if(n==0) return1;
else if(n==1)
return 2;
else
return fib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是________。
A、1
B、2
C、3
D、4
(  B  )
5、下列关于模板形参的描述中,错误的是________。
A、模板形参表必须在关键字template之后
B、模板形参表必须用括弧( )括起来
C、可以用class修饰模板形参
D、可以用typename修饰模板形参
(  D  )
6、有以下函数:fun(char *a,char *b)
{
while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{
a++;
b++;
}
return(*a-*b);
}
该函数的功能是______。
A、计算 a 和 b 所指字符串的长度之差
B、将 b 所指字符串连接到 a 所指字符串中
C、将 b 所指字符串连接到 a 所指字符串后面
D、比较 a 和 b 所指字符串的大小
(  C  )
7、设有语句:printf("%2d\n",2010);
,则以下叙述正确的是________。
A、程序运行时输出 20
B、程序运行时输出 10
C、程序运行时输出 2010
D、指定的输出宽度不够,编译出错
(  C  )
8、以下叙述中正确的是________。
A、两个字符串可以用关系运算符进行大小比较
B、函数调用 strlen(s)会返回字符串 s 实际占用内存的大小(以字节为单位)
C、C 语言本身没有提供对字符串进行整体操作的运算符
D、当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
(  D  )
9、函数的形式参数隐含的存储类型说明是________。
A、extern
B、static
C、register
D、auto
(  A  )
10、c 语言程序的三种基本结构是顺序结构、选择结构和______结构.
A、循环
B、递归
C、转移
D、嵌套

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

(  C  )
1、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9
};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]);的输出结果是________。
A、1 5 9
B、1 4 7
C、3 5 7
D、3 6 9
(  A  )
2、以下不能正确计算代数式 值的c语言表达式是________。
A、1/3*sin(1/2)*sin(1/2)
B、sin(0.5)*sin(0.5)/3
C、pow(sin(0.5),2)/3
D、1/3.0*pow(sin(1.0/2),2)
(  C  )
3、设有说明 int (*ptr)[m]; 其中 ptr 是______。
A、M 个指向整型变量的指针
B、指向 M 个整型变量的函数指针
C、一个指向具有 M 个整型元素的一维数组的指针
D、具有 M 个指针元素的一维指针数组,每个元素都只能指向整型量
(  C  )
4、若有以下调用语句,则不正确的fun函数的首部是________。
main() {
…
int a[50],n;
…
fun(n, &a[9]);
…
}
A、void fun(int m,int x[])
B、void fun(int s,int h[4])
C、void fun(int p, int *s)
D、void fun(int n,int x)
(  D  )
5、对两个数组a和b进行如下初始化: char a[]="abcdef"; char b[]= {'a','b','c','d','e','f' } 则以下叙述正确的是________。
A、数组a与数组b完全相同
B、数组a与数组b长度相同
C、数组a与数组b中都存放字符串
D、数组a比数组b长度长
(  B  )
6、定义如下变量和数组: int k; int a[3][3]= {9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是________。
for(k=0;k<3;k++) printf("%d",a[k][k]);
A、7 5 3
B、9 5 1
C、9 6 3
D、7 4 1
(  A  )
7、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5,*q=null;
*q=8(p+5);
printf("%d %d\n", *p,*q);
}
A、运行后报错
B、6 6
C、6 11
D、5 5
(  B  )
8、有如下程序段int *p,a=5,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为______。
A、5
B、6
C、7
D、编译出错
(  C  )
9、以下关于局部变量和全局变量的叙述错误的是________。
A、main函数中定义的变量是局部变量
B、局部变量可以与全局变量重名。
C、形式参数不是局部变量。
D、在所有函数外定义的变量是全局变量。
(  C  )
10、在c语言的函数中,下列正确的说法是________。
A、必须有形参
B、形参必须是变量名
C、可以有也可以没有形参
D、数组名不能作形参

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

(  B  )
1、已知有如下结构体:
struct sk
{
int a;
float b;
}
data,*p;
若有p = &data,则对data的成员a引用正确的是________。
A、(*p).data.a
B、(*p).a;
C、p->data.a
D、P.data.a
(  B  )
2、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
A、6,2
B、6,4
C、8,4
D、8,6
(  C  )
3、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
A、4
B、7
C、102
D、103
(  A  )
4、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
A、stud是一个结构体变量
B、stud是一个结构体类型
C、node是一个结构体数据
D、node是一个结构体变量
(  A  )
5、有以下程序
struct s
{
int n;
int a[20];
}
;
void f(int *a, int n)
{
int i;
for(i=0;i<n-1;i++) a[i]+=i;
}
main()
{
int i;
struct s s={10,
{
2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<s.n;i++) printf("%d,",s.a[i]);
}
程序运行后的输出结果是______。
A、2,4,3,9,12,12,11,11,18,9,
B、3,4,2,7,9,8,6,5,11,10,
C、2,3,1,6,8,7,5,4,10,9,
D、1,2,3,6,8,7,5,4,10,9,
(  C  )
6、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
A、scanf("%s", pup[0].name);
B、scanf("%d", &pup[0].age);
C、scanf("%d", p->age);
D、scanf("%d", &(p->sex));
(  D  )
7、有如下定义: 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);
(  C  )
8、下列关于共用体类型变量的描述中,正确的是________。
A、可以对共用体变量直接赋值
B、一个共用体变量可以同时存放其所有的成员
C、一个共用体变量中不可以同时存放其所有的成员
D、共用体类型定义中,不能出现结构体类型的成员
(  C  )
9、下面哪个不是关键字?
A、int
B、struct
C、define
D、continue
(  A  )
10、定义共用体的关键字是________。
A、union
B、enum
C、struct
D、typedef

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

(  A  )
1、下述程序的运行结果是________。
main()
{
char*s1="abdui";
char*s2="abdug";
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
A、正数
B、负数
C、零
D、不确定的值
(  D  )
2、下列程序的输出结果是________。
char *p1="abcd", *p2="abcd", str[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A、xyabcAB
B、abcABz
C、ABabcz
D、xycdBCD
(  B  )
3、有以下程序:
main()
{
int x=4,y;
do
{
y=x;
if(!y)printf("x");
else printf("y"); x--;
}
while(x);
}
程序的输出结果是________。
A、xyyx
B、yyyy
C、yyxx
D、yxyx
(  C  )
4、要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{
int i,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++) printf(" ");
for(k=1;________;k++) printf("%2d",i);
________
}
}
A、i<=k
printf(" ");
B、k<j
printf("\n");
C、k<=i
printf("\n");
D、k<=i
printf(" ");
(  D  )
5、有以下程序
#includes <stdio.h>
main()
{
int a=1,b=2;
for(;a<8;a++)
{
b+=a;
a+=2;
}
printf ("%d,%d\n",a,b);
}
程序运行后的输出结果是________。
A、9,18
B、8,11
C、7,11
D、10,14
(  D  )
6、下列程序的执行结果是 ___________.
#include <stdio.h>
void main( )
{
int x=0,y=1,z=0;
if (x=z=y) x=3;
printf("%d,%d\n",x,z);
}
A、3,0
B、0, 0
C、0,1
D、3,1
(  D  )
7、若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
以下程序段的输出结果是______。
int a;
a=Y;
printf("%d\n",Z);
printf("%d\n",--a);
A、7 6
B、12 6
C、12 5
D、7 5
(  A  )
8、以下程序结果为:______。
void add( )
{
static int x=3;
x++;
printf("%d",x);
}
main( )
{
int i;
for(i=0;i<3;i++)add( );
}
A、456
B、444
C、555
D、345
(  C  )
9、有以下程序
main()
{
char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是______。
A、n,two
B、t,one
C、w,one
D、o,two
(  A  )
10、当执行下面程序且输入:abc时,输出的结果是______。
#include <stdio.h>
#include <string.h>
main( )
{
char ss[10]="12345";
strcat(ss,"6789");
gets(ss);
printf("%s\n",ss);
}
A、ABC
B、ABC9
C、123456ABC
D、ABC456789