西安美术学院往年C语言预测卷

本试卷为西安美术学院往年C语言预测卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

C语言预测卷

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

(  B  )
1、以下叙述中正确的是________。
A、预处理命令行必须位于c源程序的起始位置
B、在c语言中,预处理命令行都以“#”开头
C、每个c程序必须在开头包含预处理命令行:#include
D、C语言的预处理不能实现宏定义和条件编译的功能
(  A  )
2、有定义:"int a=2,b=3,c=4;",则下列选项中值为0的表达式是________。
A、(!a==l)&&(!b==0)
B、(a<B)&&!C||1
C、a&&b
D、a||(b+b)&&(c-a)
(  A  )
3、若有定义:int x,*pb;则正确的赋值表达式是________。
A、pb=&X
B、pb=X
C、*pb=&x
D、*pb=*x
(  D  )
4、若变量c为char类型,能正确判断出c为小写字母的表达式是________。
A、’a’<=c<=’z’
B、(c>=’a’) || (c<=’z’)
C、(‘a’<=c) and (‘z’>=c)
D、(c>=’a’) && (c<=’z’)
(  C  )
5、设有int x=11;则表达式(x+1/3)的值是________。
A、3
B、4
C、11
D、12
(  B  )
6、若有定义int a=2; 则执行完语句a/=a*a; 后,a的值是________。
A、0.5
B、0
C、1/2
D、1/4
(  B  )
7、若需要利用形参直接访问实参,则应把形参变量说明为( )参数。
A、指针
B、引用
C、传值
D、常值
(  A  )
8、已知char a; int b; float c; double d; 则表达式a*b+c-d的结果为________。
A、double
B、int
C、float
D、char
(  C  )
9、以下叙述中不正确的是________。
A、预处理命令行都必须以撑号开始,结尾不加分号
B、在程序中凡是以#号开始的语句行都是预处理命令行
C、C程序在执行过程中对预处理命令进行处理
D、预处理命令可以放在程序中的任何位置
(  A  )
10、已知:int n=10; 在下列定义引用的语句中,正确的是________。
A、int &x=n;
B、int x=&n;
C、int &x;
D、int &x=&n;
(  A  )
11、以下选项中,与 n=i++ 完全等价的表达式是________。
A、n=i,i=i+1
B、n+=i+1
C、i=i+1,n=i
D、n=++i
(  A  )
12、以下非法的字符常量是________。
A、'\\n'
B、'\101'
C、'\x21'
D、'\0'
(  D  )
13、下列关于表达式的描述中,错误的是________。
A、常量和变量都是表达式
B、运算符类型对应表达式的类型
C、每一个表达式都有自己的值
D、表达式必须以分号结尾
(  D  )
14、已知字符 'a' 的ascii码为 97,执行下列语句的输出是____。
A、98, b
B、语法不合法
C、98, 99
D、98, c
(  C  )
15、执行语句for(i=1;i<4;i++ ); 后变量i的值是________。
A、3
B、5
C、4
D、不定
(  C  )
16、如下程序段运行输出的结果为________。 int a=5,b=6,c; c=++a+b--; printf("%d,%d,%d%\n",a,b,c);
A、5,6,11
B、6,5,11
C、6,5,12
D、6,6,12
(  C  )
17、下列关于指针变量的描述,不正确的是________。
A、在没有对指针变量赋值时,指针变量的值是不确定的
B、同类指针类型可以进行相减操作
C、在使用没有赋值的指针变量时,不会出现任何问题
D、可以通过指针变量来取得它指向的变量值
(  D  )
18、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为__________。
A、a < > 0
B、!a
C、a=0
D、a!=0
(  C  )
19、下列语句的输出结果是()。
printf("%d\n",(int)(2.5+3.0)/3);
A、有语法错误不能通过编译
B、2
C、1
D、0
(  C  )
20、能将高级语言编写的源程序转换为目标程序的是()。
A、链接程序
B、解释程序
C、编译程序
D、编辑程序

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

(  B  )
1、下列表达式为关系表达式的为_________。(其中a为一整型变量)
A、3+4*5
B、a==10
C、a>0a:-a
D、a=1
(  D  )
2、下列描述正确的是________。
A、表示m>n为true或m<n为true的表达式为m>n&&m<n
B、switch语句结构中必须有default语句
C、if语句结构中必须有else语句
D、如果至少有一个操作数为true,则包含||运算符的表达式为true
(  A  )
3、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
A、非0 0
B、0 1
C、非0非0
D、1 1
(  A  )
4、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
A、可以是任意合法的表达式
B、必须是逻辑表达式
C、必须是逻辑表达式或关系表达式
D、必须是关系表达式
(  C  )
5、下列程序的输出结果是______。
#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
(  A  )
6、选择出合法的if语句(设int x,a,b,c;)________。
A、if(a=b) x++;
B、if(a=<b) x++;
C、if(a<>b) x++;
D、if(a=>b) x++;
(  B  )
7、能正确表示a≥10或a≤0的关系表达式是________。
A、a>=10 or a<=0
B、a>=10 || a<=0
C、a>=10 | a<=0
D、a>=10 && a<=0
(  D  )
8、以下叙述中正确的是________。
A、逻辑"或”(即运算符||)的运算级别比算术运算要高
B、C 语言的关系表达式:0<x<10 完全等价于:(0<x)&&(x<10)
C、逻辑"非”(即运算符!)的运算级别是最低的
D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象
(  D  )
9、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
A、只能用逻辑表达式
B、只能用关系表达式
C、只能用逻辑表达式或关系表达式
D、可用任意表达式
(  D  )
10、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
A、-1
B、1
C、非零的数
D、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
(  D  )
2、下面程序的输出结果是 ____________.
main( )
{
int i,k=0, a=0, b=0;
for(i=1;i<=4;i++)
{
k++;
if (k%2==0)
{
a=a+k;
continue;
}
b=b+k;
a=a+k;
}
printf("k=%d a=%d b=%d\n",k,a,b);
}
A、k= 5 a =10 b=4
B、k= 3 a =6 b=4
C、k= 4 a =10 b=3
D、k= 4 a =10 b=4
(  B  )
3、程序语言一般都提供多种循环语句,例如实现先判断循环条件再执行循环体的while语句和先执行循环体再判断循环条件的do-while语句。关于这两种循环结构,在不改变循环体的条件下, (17) 是正确的。
A、while语句的功能可由do-while语句实现
B、do-while语句的功能可由while语句实现
C、若已知循环体的次数,则只能使用while语句
D、循环条件相同时,do-while语句的执行效率更高
(  D  )
4、现有以下语句: i=1; for (;i<=100;i++) sum+=i;
A、for(i-1;;i++)
sum+--i;
if(i==100) break;
B、for(i=1;i<=100;)
sum+=i;
i++;
C、i=1;
for(;i<=100;)
sum+=-i;
D、i=1;
for(;;)
sum+=i;
if(i==100) break;
i++;
(  C  )
5、在下列叙述中,正确的一条是______。
A、if(表达式)语句中,表达式的类型只限于逻辑表达式
B、语句“goto 12;”是合法的
C、for(;;)语句相当于while(1)语句
D、break语句可用于程序的任何地方,以终止程序的执行
(  C  )
6、有以下程序
main()
{
int i;
for(i=1;i<=40;i++)
{
if(i++%5==0) if(++i%8==0) pfintf("%d",i);
}
printf("\n");
}
执行后的输出结果是________。
A、5
B、24
C、32
D、40
(  D  )
7、分析下列程序,其最终执行结果是______。
main()
{
int n[3],i,j,k;
for(i=0;i<3;i++)n[i]=o;
k=2;
for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1;
printf("%d\n",n[0]);
}
A、-2
B、-1
C、0
D、-3
(  A  )
8、若变量已正确定义,对以下while循环结束条件的准确描述是________。
A、item的绝对值小于0.0001
B、item的绝对值大于0.0001
C、item的绝对值等于0.0001
D、item的绝对值不等于0.0001
(  B  )
9、以下有关switch语句的正确说法是________。
A、break语句是语句中必须的一部分
B、在switch 语句中可以根据需要使用或不使用break语句
C、break语句在switch 语句中不可以使用
D、在switch 语句中的每一个case都要用break语句
(  C  )
10、以下描述正确的是________。
A、goto 语句只能用于退出多层循环。
B、switch 语句中不能出现continue 语句。
C、只能用continue 语句来中止本次循环。
D、在循环中break 语句不能独立出现。

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

(  C  )
1、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是________。
int t[3][3],
*pt[3],k;
for(k=0;k<3;k++) pt[k]= &t[k][0];
A、t[2][0]
B、t[2][2]
C、t[1][2]
D、t[2][1]
(  D  )
2、若有定义:int a[10],则对数组a元素的正确引用是________。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
(  C  )
3、若有定义:int aa[ 8]; 则以下表达式中不能代表数组元aa[1]的地址的是________。
A、&aa[0]+1
B、&aa[1]
C、&aa[0]++
D、aa+1
(  D  )
4、以下函数findmax拟实现在数组中查找最大值并作为函数值返回, 但程序中有错导致不能实现预定功能
#define MIN -2147463647
int findmax(int x[],int n)
{
int i,max;
for(i=0;i<n;i++)
{
max=MIN;
if(max<x[i]) max=x[i];
}
return max;
}
造成错误的原因是________。
A、定义语句int i,max中max未赋值
B、赋值语句max=MIN;中,不应该给max赋MIN值
C、语句if(max<x[i]) max=x[i];中判断条件设置错误
D、赋值语句max=MIN;放错了位置
(  A  )
5、设有如下程序段 char s[20]= "bejing",*p; p=s; 则执行p=s; 语句后,以下叙述正确的是________。
A、可以用*p表示s[0]
B、s数组中元素的个数和p所指字符串长度相等
C、s和p都是指针变量
D、数组s中的内容和指针变量p中的内容相等
(  D  )
6、已知3个字符为:a、x和5,按它们的ascii码值升序排序,结果是________。
A、5<a<X
B、a<5<X
C、X<a<5
D、5<X<a
(  A  )
7、在数制的转换中,正确的叙述是______。
A、对于相同的十进制整数(>1),其转换结果的位数的变化趋势随着基数E的增大而减少
B、对于相同的十进制整数(<1),其转换结果的位数的变化趋势随着基数E的增大而增加
C、不同数制的数字符是各不相同的,没有一个数字符是一样的
D、对于同一个整数值的二进制数表示的位数一定大于十进制数字的位数
(  A  )
8、有以下程序:
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10,p++)printf("%d,",*p);
}
程序运行后的输出结果是________。
A、1,234,5,6,7,8,9,0,
B、2,3,4,5,6,7,8,9,10,1,
C、01,23,4,5,6,7,8,9,
D、1,1,1,1,1,1,1,1,1,1,
(  C  )
9、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
A、LANGUAGE
B、language
C、LAN
D、langUAGE
(  B  )
10、关于数组和指针,以下说法错误的是________。
A、数组名本身就是一个指针,指向数组内存的起始位置
B、既可以读入数据到数组中,也可以读入数据到未赋初值的指针中
C、可以让一个指针指向一个同类型的数组
D、指针可以指向同类型的数组中的任意一个元素

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

(  C  )
1、下列能正确进行字符串赋值的是________。
A、char s[5]={¨ABCDE”);
B、char s[5]={'A','B','C','D','E'};
C、char*s;s=”ABCDE”;
D、char*s;printf(”%S”,s);
(  D  )
2、以下关于字符串的叙述中正确的是________。
A、c语言中有字符串类型的常量和变量
B、两个字符串中的字符个数相同时才能进行字符串大小的比较
C、可以用关系运算符对字符串的大小进行比较
D、空串一定比空格打头的字符串小
(  C  )
3、以下不能将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  )
4、以下能正确定义字符串的语句是________。
A、char str[]={′\064′};
B、char str="kx43";
C、char str=";
D、char str[]="\0";
(  C  )
5、null是指 ________。
A、0
B、空格
C、未知的值或无任何值
D、空字符串
(  B  )
6、下列关于串的叙述中,哪一条是正确的( )
A、串是由至少1个字符组成的有限序列
B、串中字符的数目就是串的长度
C、空串就是由空格构成的串
D、串只能顺序存储
(  B  )
7、下列选项中c语言中不合法的字符串常量的是________。
A、"\121"
B、'y'
C、"\n\n"
D、"ABCD\x6d\
(  D  )
8、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
A、12
B、15
C、6
D、5
(  C  )
9、下列选项中,表示字符串末尾的结束标志是________。
A、'\n'
B、'\r'
C、'\0'
D、NULL
(  B  )
10、下面选项中合法的字符常量是________。
A、"X"
B、'X'
C、'abc'
D、'\'

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

(  C  )
1、在函数中默认存储类型说明符的变量应该是________存储类型。
A、内部静态
B、外部
C、自动
D、寄存器
(  A  )
2、c语言中函数返回值的类型是由 决定的.
A、函数定义时指定的类型
B、return语句中的表达式类型
C、调用该函数时的实参的数据类型
D、形参的数据类型
(  D  )
3、分析下面函数,以下说法正确的是______。
swap(int *p1,int *p2)
{
int *p;
*p=*p1;
*p1=*p2;
*p2=*p;
}
A、交换 *p1 和 *p2 的值
B、正确,但无法改变 *p1 和 *p2 的值
C、交换 *p1 和 *p2 的地址
D、可能造成系统故障,因为使用了空指针
(  C  )
4、下面函数的功能是
char* fun(char* strl,char* str2) {
while((*strl)&&(*str2++=*strl++));
return str2;
}
A、求字符串的长度
B、比较两个字符串的大小
C、将字符串str1复制到字符串str2中
D、将字符串str1接续到字符串str2中
(  B  )
5、以下叙述中正确的是________。
A、在函数中必须要有return语句
B、在函数中可以有多个return语句,但只执行其中的一个
C、return语句中必须要有一个表达式
D、函数值并不总是通过return语句传回调用处
(  C  )
6、以下关于局部变量和全局变量的叙述错误的是________。
A、main函数中定义的变量是局部变量
B、局部变量可以与全局变量重名。
C、形式参数不是局部变量。
D、在所有函数外定义的变量是全局变量。
(  C  )
7、printf 函数中用到格式符%5s ,其中数字5 表示输出的字符串占用5 列。如果字符串长度小于5,则输出按方式。
A、从左起输出该字串,右补空格
B、按原字符长从左向右全部输出
C、右对齐输出该字串, 左补空格
D、输出错误信息
(  D  )
8、以下叙述中正确的是________。
A、函数的形式参数不属于局部变量
B、对于变量而言,定义和说明这两个词实际上是同一个意思
C、在复合语句中不能定义变量
D、全局变量的存储类别可以是静态类
(  C  )
9、关于return语句,下列正确的说法是________。
A、不能在主函数中出现且在其他函数中均可出现
B、必须在每个函数中出现
C、可以在同一个函数中出现多次
D、只能在除主函数之外的函数中出现一次
(  B  )
10、C语言函数内定义的局部变量的隐含存储类别是
A、static
B、auto
C、register
D、extern

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

(  D  )
1、若有如下定义,则________是对数组元素的正确的引用 int a[10], *p ; p=a;
A、*&a[10]
B、a[11]
C、*(p+11)
D、*p
(  D  )
2、若有如下定义语句: int a[10]= { 1,2,3,4,5,6,7,8,9,10 } ; 则对数组正确的引用是________。
A、a[10]
B、a[a[3]5]
C、a[a[9]]
D、a[a[4]+4]
(  A  )
3、若程序中定义了以下函数 double myadd(double a,double b)
{
return (a+b);
}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是________。
A、double myadd(double a,b);
B、double myadd(double,double);
C、double myadd(double b,double a);
D、double myadd(double x,double y);
(  D  )
4、若有以下定义和语句: double r=99 , *p=&r ; *p=r ; 则以下正确的叙述是______。
A、以下两处的 *p 含义相同,都说明给指针变量 p 赋值
B、在 "double r=99,*p=&r ; " 中,把 r 的地址赋值给了 p 所指的存储单元
C、语句 "*p=r ; " 把变量 r 的值赋给指针变量 p
D、语句 "*p=r ; " 取变量 r 的值放回 r 中
(  D  )
5、若有以下定义: int a[]= {1,2,3,4,5,6,7 }; char c1='b',c2='2'; 则数值不为2的表达式是________。
A、a[1]
B、'd'-c1
C、a['3'-c2]
D、c2-0
(  B  )
6、有以下程序: fun(int x,int y)
{
static int m=0, i=2;
i+=m+1;
m=i+x+y;
return m;
}
main()
{
int j=1,m=1,k;
k=fun(j,m);
printf("%d,"k);
k=fun(j,m);
printf("%d\n",k);
}
执行后的输出结果是________。
A、5,5
B、5,11
C、11,11
D、11,5
(  A  )
7、有以下程序:
main()
{
int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<8;i++) printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是________。
A、75310246
B、01234567
C、76310462
D、13570246
(  D  )
8、c语言中函数能否嵌套调用和递归调用?( )
A、二者均不可
B、前者可,后者不可
C、前者不可,后者可
D、二者均可
(  C  )
9、下面正确的字符串常量是________。
A、'a'
B、'376'
C、"\n"
D、376
(  C  )
10、char a[10]; 不能将字符串"abc"存储在数组中的是________。
A、strcpy(a,"abc");
B、a[0]=0;strcat(a,"abc");
C、a="abc";
D、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;

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

(  A  )
1、c语言结构体类型变量在程序执行期间,________。
A、所有成员一直驻留在内存中
B、没有成员驻留在内存中
C、部分成员驻留在内存中
D、只有一个成员驻留在内存中
(  D  )
2、有以下程序
struct stu
{
int num;
float totalscore;
};
void f(struct stu p)
{
struct stu s[2]= {{20044,550}, {20045,537}};
p.num = s[1].num;
p.totalscore = s[1].totalscore;
}
main()
{
struct stu s[2]= {{20041,703} ,{20042,580}};
f(s[0]);
printf("%d %3.0f\n", s[0].num, s[0].totalscore);
}
程序运行后的输出结果是________。
A、20045 537
B、20044 550
C、20042 580
D、20041 703
(  D  )
3、若有以下说明语句:
struct student
{
int num;
char name[ ];
float score;
} stu;
则下面的叙述不正确的是: ( )
A、struct是结构体类型的关键字
B、struct student 是用户定义的结构体类型
C、num, score都是结构体成员名
D、stu是用户定义的结构体类型名
(  D  )
4、若有以下定义的语句
struct student
{
int age;
int num;
};
struct student stu[3]={{1001,20},{1002,19},{1003,21}};
main()
{
struct student *p;
p=stu;
…
}则以下不正确的引用是________。
A、(p++)->num
B、p++
C、(*p).num
D、p=&stu.age
(  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、c 语言中的基本数据类型包括
A、整型、实型、字符型
B、整型、字符型、数组
C、整型、实型、逻辑型
D、整型、实型、结构体
(  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);
(  B  )
8、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
A、st1 = st2
B、p->name = st2.name
C、p->num = st2.num
D、*p=st2
(  C  )
9、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
A、a[1]
B、a[-1]
C、a[0]
D、a[10]
(  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分)

(  C  )
1、若有以下程序:
void
fun (float *a, float *b)
{
float w;
*a = *a + *a;
w = *a;
*a = *b;
*b = w;
}
main ()
{
float x = 2, y = 3, *px = &x, *py = &y;
fun (px, py);
printf ("%2.0f,%2.0f\n", x, y);
}
程序的输出结果是________。
A、4,3
B、2,3
C、3,4
D、3,2
(  A  )
2、执行下列程序段后的输出结果是 ___________. int x=1,y=1,z=1; x+=y+=z; printf("%d\n",x<y?y:x);
A、3
B、2
C、1
D、4
(  A  )
3、若运行下面程序时 , 给变量 a 输入 15, 则输出结果是 ________.
#include <stdio.h>
void main( )
{
int a,b;
scanf("%d",&a);
b=a>15?a+10:a-10;
printf("%d\n",b) ;
}
A、5
B、25
C、15
D、10
(  D  )
4、以下程序输出的结果是 ___________.
#include <stdio.h>
void main( )
{
char str[ ]=" 1a 2b 3c ";
int i;
for(i=0;str[i]!='\0';i++) if(str[i]>='0'&&str[i]<='9')
printf("%c",str[i]);
printf("\n");
}
A、123456789
B、1a 2b 3c
C、abc
D、123
(  C  )
5、以下程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int a[ ]={5,4,3,2,1},i,j;
long s=0;
for(i=0;i<5;i++) s=s*10+a[i];
printf("s=%ld\n",s);
}
A、s=12345
B、s=5 4 3 2 1
C、s=54321
D、以上都不对
(  B  )
6、下面程序段执行结果是________。 int i=5,k;
k=(++i)+(++i)+(i++);
printf("%d,%d",k,i);
A、24,8
B、21,8
C、21,7
D、24,7
(  B  )
7、下面程序的输出结果是______。
main( )
{
int b[]={1,2,3,4,5,6,7,8,9,0},*q;
q=b;
printf("%d\n",*(q+0));
}
A、0
B、1
C、10
D、9
(  B  )
8、如下程序,要想输出结果为ab,那么输入应该为
void main()
{
char a;
char b;
scanf("%c%c",&a,&b);
printf("%c%c",a,b);
}
A、a【空格】b
B、ab
C、'a' 'b'
D、97 98
(  C  )
9、下列语句输出结果是________。
long a=0xffff;
int b=a;
printf( "%d",b);
A、65535
B、65536
C、-1
D、1
(  C  )
10、以下程序段的执行结果是________。 double x; x=218.82631; printf("%-6.2e\n",x);
A、输出格式描述符的域宽不够,不能输出
B、输出为21.38e+01
C、输出为2.2e+02
D、输出为-2.14e2
相关标签:
  • C语言
  • 西安美术学院
  • 预测卷