长春中医药大学历年计算机C语言期末精选样卷

本试卷为长春中医药大学历年计算机C语言期末精选样卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

计算机C语言期末精选样卷

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

(  B  )
1、已知字母a的ascⅱ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是________。
A、kk>='A'&&kk<='Z'
B、!(kk>='A'‖kk<='Z')
C、(kk+32)>='a'&&(kk+32)<='z'
D、isalpha(kk)&&(kk<91)
(  D  )
2、设变量已正确定义,则以下能正确计算f=n!的程序是________。
A、f=0;
for(i=1;i<=n:i+十)f*=i;
B、f=1
for(i=1:i
C、f=l:
for(i=n;i>1;i十+)f*=i;
D、f=1:
for(i=n;j>=2;j--)f*=i;
(  A  )
3、运算符________的优先级最高。
A、[ ]
B、+=
C、?:
D、++
(  B  )
4、以下叙述中错误的是________。
A、可以用typedef说明的新类型名来定义变量
B、typedef说明的新类型名必须使用大写字母,否则会出编译错误
C、用typedef可以为基本数据类型说明一个新名称
D、用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名
(  D  )
5、在c语言的变量类型说明中,int,char,float等类型的长度是________。
A、固定的
B、由用户自己定义的
C、任意的
D、与机器字长有关的
(  A  )
6、在 c 语言中 , 全局变量的存储类别是 ___________.
A、static
B、exte rn
C、void
D、registe
(  C  )
7、以下选项中合法的实型常数是________。
A、5E2.0
B、E-3
C、0.2
D、1.3E
(  D  )
8、三元条件运算符ex1ex2:ex3,相当于下面的( )语句。
A、if(ex2)
ex1;
else
ex3;
B、if(ex3)
ex2;
else
ex1;
C、if(ex1)
ex3;
else
ex2;
D、if(ex1)
ex2;
else
ex3;
(  C  )
9、设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是________。
A、0
B、2
C、1
D、3
(  A  )
10、若有说明语句:char c=‘\72’; 则变量c________。
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、说明不合法,C的值不确定
(  A  )
11、已知大写字母a的ascii码值是65,小写字母a的ascii码是97,则用八进制表示的字符常量''\101''是________。
A、字符A
B、字符a
C、字符e
D、非法的常量
(  C  )
12、运行以下程序后,如果从键盘上输入china
A、2,0
B、5,0
C、5,5
D、2,5
(  B  )
13、要表达出关系x ≥ y ≥ z,应使用表达式( )
A、(x>=y) AND (y>=z)
B、(x>=y) && (y>=z)
C、(x>=y) || (y>=z)
D、(x ≥ y ≥ z)
(  C  )
14、使下列程序段输出"123,456,78",键盘输入数据,正确的输入是________ 。 int i,j,k scanf("%d,%3d%d",&i,&j,&k);
printf("%d,%d,%d\n",i,j,k);
A、12345678
B、123,456,78
C、123,45678
D、123,*45678
(  D  )
15、下面( )表达式的值为4。
A、11/3
B、11.0/3
C、(float)11/3
D、(int)(11/3+1)
(  D  )
16、关于指针概念说法不正确的是________。
A、一个指针变量只能指向同一类型变量
B、一个变量的地址称为该变量的指针
C、只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
D、指针变量可以由整数赋,不能用浮点赋
(  B  )
17、为了避免在嵌套的条件语句if-else 中产生二义性,c 语言规定: else子句总是与配对________。
A、缩排位臵相同的if
B、其之前最近的没有else配对的if
C、其之后最近的if
D、同一行上的if
(  D  )
18、在c 语言中,能表示无符号长整型常数的是________。
A、OL
B、4962710U
C、912374u
D、2UL
(  A  )
19、以下叙述中错误的是
A、用户所定义的标识符允许使用关键字
B、用户所定义的标识符应尽量做到"见名知意"
C、用户所定义的标识符必须以字母或下划线开头
D、用户定义的标识符中,大、小写字母代表不同标识
(  D  )
20、在定义构造数据类型时,不能()。
A、说明变量
B、说明存储类型
C、初始化
D、末尾不写分号

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

(  C  )
1、设变量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  )
2、执行以下程序段后,w的值为________。
int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
A、-1
B、NULL
C、1
D、0
(  C  )
3、switch语句中表达式(expression)的值不允许用的类型是________。
A、byte
B、int
C、boolean
D、char
(  D  )
4、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
A、switch(a+b);……
B、switch(a+b*3.0)……
C、switch a……
D、switch(a%b)……
(  C  )
5、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=1,b=3;
if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);
}
A、2,2
B、1,3
C、3,2
D、3,1
(  C  )
6、c语言中下面哪个不是条件语句?
A、if
B、if else
C、NSLog
D、switch
(  D  )
7、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
A、0
B、1
C、2
D、3
(  B  )
8、c语言的switch语句中case后____
A、只能为常量
B、只能为常量或常量表达式
C、可为常量或表达式或有确定值的变量及表达式
D、可为任何量或表达式
(  D  )
9、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
A、-1
B、1
C、非零的数
D、0
(  C  )
10、结构化程序设计所规定的三种基本控制结构是()。
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次
(  D  )
2、若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是________。
A、switch(a+9)
{
case cl:y=a-b;
case c2:y=a+b;
}
B、switch a*b
{
case l0:x=a+b;
default:y=a-b;
}
C、switch(a+b)
{
case 1:case3:y=a+b;break;
case 0:case4:y=a-b;
}
D、switch(a*a+b*b)
{
default:break;
case 3:y=a+b;break;
case 2:y=a-b;break;
}
(  B  )
3、结构化程序所要求的基本结构不包括( )。
A、顺序结构
B、GOT0跳转
C、选择(分支)结构
D、重复(循环)结构
(  D  )
4、下面程序段的运行结果是 _____________.
for(i=1;i<=5;)
printf("%d",i);
i++;
A、12345
B、1234
C、15
D、无限循环
(  A  )
5、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
A、20
B、24
C、25
D、30
(  B  )
6、有下列程序:
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  )
7、下列说法中正确的是________。
A、在switch语句中一定要使用break语句
B、在switch语句中不一定要使用break语句
C、break语句是switch语句的一部分
D、break只能用于switch语句中
(  C  )
8、以下程序的输出结果是 _______ 。
main( )
{
int i=0,s=0;
for (;;)
{
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
A、10
B、15
C、21
D、死循环
(  C  )
9、判断关键字* ▁▁▁▁▁ 不是关键字。
A、int
B、extern
C、break
D、main
(  C  )
10、以下程序的输出结果是________。
#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、-+-+ $

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

(  D  )
1、若有定义:int c[4][5],(*cp)[5]; 和语句cp=c; ,则能正确引用c数组元素的是________。
A、cp+1
B、*(cp+3)
C、*(cp+1)+3
D、*(*cp+2)
(  C  )
2、对两个数组a和b进行下列初始化: char m[]="1234567"; char n[]={'1','2’,'3','4','5','6','7'};则下列叙述正确的是________。
A、数组in与数组n完全相同
B、数组m与数组n长度相同
C、数组m比数组n长1
D、数组m与数组n中都存放字符串
(  A  )
3、如果用数组名作为实参,则传递给形参的是________。
A、数组的首地址
B、第一个元素的值
C、数组元素的个数
D、数组中全部元素的值
(  C  )
4、下面程序的运行结果是
#include<stdio.h>
main()
{
int a=28,b;
char s[10],*p;
p=s;
do
{
b=a%16;
if(b<10) *p=b+48;
else *p=b+55;
p++;
a=a/5;
}
while(a>0);
*p='\0';
puts(s);
}
A、10
B、C2
C、C51
D、\0
(  C  )
5、有以下程序
#include <string.h>
void f(char p[][10],int n) /* 字符串从小到大排序 */
{
char t[10];
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[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是______。
A、2
B、4
C、6
D、3
(  B  )
6、已知:int a[2][3]; 则对数组元素的非法引用是________。
A、*(a[0]+2)
B、.a[1][3]
C、a[1][0]
D、*(*(a+1)+2)
(  A  )
7、对于定好的数组,系统会自动为该数组分配内存空间,char c[20]= { "hello world" }对于c对应的内存中的地址编号是2000,则c[4]对应的内存地址的编号为________。
A、2004
B、200A
C、2010
D、2008
(  D  )
8、若有说明 int a[][4]={0,0};
则下面不正确的叙述是________。
A、数组a的每个元素都可得到初值0
B、二维数组a的第一维大小为1
C、因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1
D、有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
(  C  )
9、若有定义: int (*p)[4];
则标识符p 。
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个指针,它指向一个含有四个整型元素的一维数组
D、定义不合法
(  D  )
10、static char str[10]="China";数组元素个数为()。
A、5
B、6
C、9
D、10

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

(  D  )
1、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
A、说明不合法
B、19
C、18
D、15
(  C  )
2、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是________。
#include<stdio.h>
main()
{
char sl[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]=s2[i]&&i<7) ____________________;
}
A、putchar(s2;putchar(
B、puts(s1,
C、printf("%c%d\n",s2,
D、printf("%c",s1);printf("%d\n",
(  C  )
3、以下能将字符串,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  )
4、下列变量定义中,错误的是______。
A、int x=3;
B、float f;d;
C、String s="Hello!";
D、boolean b=true;
(  C  )
5、下面正确的字符串常量是________。
A、'a'
B、'376'
C、"\n"
D、376
(  B  )
6、下面选项中合法的字符常量是________。
A、"X"
B、'X'
C、'abc'
D、'\'
(  A  )
7、以下选项中关于 c 语言常量的叙述错误的是________。
A、经常被使用的变量可以定义成常量
B、常量分为整型常量、实型常量、字符常量和字符串常量
C、所谓常量,是指在程序运行过程中,其值不能被改变的量
D、常量可分为数值型常量和非数值型常量
(  C  )
8、设 char *s="\ta\017bc";
则指针变量s指向的字符串所占的字节数 是________。
A、9
B、5
C、6
D、7
(  A  )
9、下面不能正确进行字符串赋值操作的语句是________。
A、char s[5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s;s="ABCDEF";
D、char *s; scanf("%s",s);
(  A  )
10、设有以下语句, 若 0
A、strp
B、str[k]
C、strp[k]
D、*strp

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

(  C  )
1、以下叙述正确的是 。
A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
B、在C程序中,main函数必须位于程序的最前面
C、C语言本身没有输入输出语句
D、C程序的每行中只能写一条语句
(  B  )
2、以下叙述中正确的是______。
A、全局变量的作用域一定比局部变量的作用域范围大
B、静态 (static) 类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值
(  D  )
3、在下面的函数声明中,存在着语法错误的是________。
A、void BC(int a,in
B、void BD(int,in
C、void BE(int,int t=5)
D、int BF(int x;int
(  A  )
4、在c语言中,main函数默认返回一个( )类型的值。
A、int
B、float
C、char
D、void
(  C  )
5、有如下函数定义;
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
(  D  )
6、设int f (int); 和int g(int); 是函数f和g的原形,以下将f作为语句调用的是______ 。
A、g(f(3))
B、f(g(3));
C、g(f(3)+2);
D、p=f(g (3)+1);
(  D  )
7、有以下函数: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 所指字符串的大小
(  B  )
8、有以下程序:
void ss(char *s,char t)
{
while(*s)
{
if(*s==t)
*s=t-''a''+''a'';
s++;
}
}
main()
{
char strl[100]="abcddfefdbd",c=''d'';
ss(strl,c);
printf("%s\n",strl);
}
程序运行后的输出结果是________。
A、ABCDDEFEDBD
B、abcDDfefDbD
C、abcAAfefAbA
D、Abcddfefdbd
(  D  )
9、若x,y均定义成int型,z定义为double型,以下不合法的scanf函数调用语句是________。
A、scanf(“%d %x, %le”, &x, &y, &z);
B、scanf(“%2d *%d, %lf” &x, &y, &z);
C、scanf(“%x %*d %o”, &x, &y);
D、scanf(“%x %o%6.2f”, &x, &y, &z);
(  A  )
10、下面选项中表示主函数的是?
A、main()
B、int
C、printf()
D、return

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

(  B  )
1、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是________。
A、a[0][4]
B、a[l][3]
C、a[0][3]
D、a[1][4]
(  C  )
2、没有如下定义: int(*ptr)(); 则以下叙述中正确的是________。
A、ptr是指向一维组数的指针变量
B、ptr是指向int型数据的指针变量
C、ptr是指向函数的指针,该函数返回一个int型数据
D、ptr是一个函数名,该函数的返回值是指int型数据的指针
(  B  )
3、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
A、printf("%d",a[10];)
B、printf("%d",a[9]);
C、printf("%d",a[a.length]);
D、printf("%d",a[8]);
(  B  )
4、设矩阵a是一个n×n对称矩阵.即a[i,j]=a[i,j],为了节省存储空间,将其下三角部分按行序为主序存放在一维数b[1...n(n+1)/2]中,对任一下三角元素aij(i≥j),在一维数组b的下标位置k的值是______。
A、(i+(i-1))/2+j-1
B、i(i-1)/2+j
C、i(i+1)/2+j-1
D、i(i+1)/2+j
(  D  )
5、下列字符串中,不可以用作c标识符的是________。
A、y_2006
B、_FEST_H
C、Return
D、switch
(  B  )
6、有以下程序
#include<string.h>
main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcat(p,r);
strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是________。
A、9
B、6
C、11
D、7
(  B  )
7、若定义a=3,b=4,执行printf("%d, %d",(a,b),(b,a)); 的输出结果为________。
A、3,4
B、4,3
C、3,3
D、4,4
(  D  )
8、关于数组的定义与初始化,下列哪一项是错误的( )
A、int arr[5] = {1,2,3,4,5};
B、int arr[] = {1,2,3,4,5};
C、int arr[5] = { 1,2,3};
D、int arr[5] = {1,2,3,4,5,6};
(  B  )
9、设变量定义为 int a[2]={1,3}
, *p=&a[0]+1;
,则*p的值是________。
A、2
B、3
C、4
D、&a[0]+1
(  C  )
10、关于return语句,下列正确的说法是________。
A、不能在主函数中出现且在其他函数中均可出现
B、必须在每个函数中出现
C、可以在同一个函数中出现多次
D、只能在除主函数之外的函数中出现一次

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

(  B  )
1、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node*next;
}
a,b,*p=&a,*q=&b;
A、a.next=q;
B、P.next=&b:
C、p—>next=&b;
D、(*p).next=q;
(  C  )
2、有以下程序
struct stu
{
char name[10];
int num;
int score;
}
;
main( )
{
struct stu s[5]={{"yangsan",20041,703} , {"lisiguo",20042,580 , {"wangyin",20043,680}, {"sundan",20044,550}, {"penghua",20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->score>p[j]->score)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
printf("5d %d\n",s[1].score,p[1]->score);
}
执行后输出结果是________。
A、550 550
B、680 680
C、580 550
D、580 680
(  B  )
3、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
A、PER 是结构体变量名
B、PER是结构体类型名
C、typedef struct 是结构体类型
D、struct 是结构体类型名
(  B  )
4、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
A、5
B、6
C、7
D、8
(  C  )
5、以下程序的输出结果是
#include<stdio.h>
struct st
{
int x;
int *y;
}
*p;
int dt[4]= {10,20,30,40 };
struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main()
{
p=aa;
printf("%d\n",++(p->x));
}
A、10
B、11
C、51
D、60
(  A  )
6、设有如下说明:
typedef struct
{
int n;
char c;
double x;
}
std;
则以下选项:能正确定义结构体数组并赋初值的语句是________。
A、STDtt[2]={{1,'A',62},{2,'B',75}};
B、STDtt[2]={1,"A",62,2,"B",75};
C、struet tt[2]={{1,'A'},{2,'B'}};
D、struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
(  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);
(  A  )
8、设有结构体的定义如下:
struct data
{
char c1;
char c2;
}
;
则sizeof(struct data)的值是________。
A、2
B、3
C、4
D、5
(  D  )
9、下面定义结构变量的语句中错误的是________。
A、struct student{
int num; char name[20];
} s;
B、struct {
int num; char name[20];
} s;
C、struct student{
int num; char name[20];
};
struct student s;
D、struct student{
int num; char name[20];
};
student s;
(  B  )
10、相同结构体类型的变量之间,可以________。
A、相加
B、赋值
C、比较大小
D、地址相同

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

(  B  )
1、有以下程序:
#define S(x) (x)*x*2
int main()
{
int k=5, j=2;
printf("%d",S(k+j));
printf("%d\n",S(k-j));
}
程序运行后的输出结果是________。
A、98,18
B、39,11
C、39,18
D、98,11
(  A  )
2、有以下程序:
double f(double x);
main()
{
double a=0;
int i;
for(i=0;i<30;i+=10)a+=f((double)i);
printf("%5.0f\n",a);
}
double f(double x)
{
return x*x+1;
}
程序运行后的输出结果是________。
A、503
B、401
C、500
D、1404
(  A  )
3、分析以下程序的输出结果是________。
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  )
4、有以下程序:
main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;
p=q;
q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是________。
A、1,2,1,2
B、1,2,2,1
C、2,1,2,1
D、2,1,1,2
(  A  )
5、有以下程序
#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
(  D  )
6、下述程序段的执行结果是________。
#include <stdio.h>
void main() {
int x;
for(x=1;x<=100;x++) if(++x%3==0) if(++x%4==0) if(++x%7==0) printf("%d",x);
}
A、75
B、76
C、77
D、84
(  D  )
7、下面程序
main()
{
int x=32;
printf("%d\n",x=x<<1);
}
的输出是______。
A、100
B、160
C、320
D、64
(  C  )
8、有以下的代码 int a[4]= {1,2,3,4 }; int *p=a; p++; ++p; printf("%d",*p); 的输出结果是________。
A、1
B、2
C、3
D、4
(  D  )
9、"现有程序:main()
{
int *ptr,*p[5],i;
if((ptr=malloc(100*sizeof(int)))!=null)
{
p[0]=ptr;
for(i=1;i<5;i++) p[i]=p[i-1]+7;
for(i=0;i<100;i++) *ptr++=i;
for(i=0;i<5;i++) printf(""%3d"",*p[i]);
}
}
其输出结果是________。"
A、1 7 14 27 28
B、0 7 14 22 28
C、0 7 13 22 28
D、0 7 14 21 28
(  C  )
10、下面程序的输出结果是________。
main()
{
char *p1="abc",*p2="abc",str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);
}
A、xyzabcABC
B、zabcABC
C、xyabcABC
D、yzabcABC