A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c); C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c); ⒖ 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于( ) A、p++ B、x++ C、*(p++) D、&x++ ⒗ 若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, 正确的语句是 ( ) A、p2=p1; B、p2=**p1; C、p2=&p1; D、p2=*p1; ⒘ 下列程序段的输出是 ( ) A、 3 B、 5 C、 4 D、6 int c[]={1, 3, 5}; int *k=c+1;
printf(\
⒙ 不正确的赋值或赋初值的方式是 ( )
A、char str[]=\; B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};
C、char str[10];str=\; D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ’\\0’};
⒚下面程序的输出结果是( ) A、7d B、x C、0125 D、%x
main() {int x=125;
printf(“%x \\n”,x); }
⒛ 对于如下说明,语法和语义都正确的赋值是 ( ) A、c=*s; B、 s[0]=a[0]; C、s=&a[1]; D、 c=a;
int c, *s, a[]={1, 3, 5};
二.填空题
⑴286用C语言八进制表示是 。 ⑵若x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4的值是 2.5 。 ⑶C语言规定对所用到的变量要 先定义以后使用 。 ⑷将C中的小写字母转换成大写字母的表达式是 C=C-32 。
⑸将C中的数字字符码转换成对应的数字,可采用的方法是:C= C-48 。
⑹执行(a=3.0+5,a*4),a+=-6;变量a及表达式的值分别为 2.0,2.0 。 ⑺表示条件:10
⑻为表示关系x>=y>=z,应使用C语言表达式是 X>=Y&&Y>==Z 。 ⑼若已知a=10,b=20,则表达式!a
⑽为了避免嵌套的条件语句if-else的二义性,C语言规定:else与 IF 匹配。 ⑾设y为int型变量,请写出描写“y是奇数”的表达式 Y%2 。
⑿已知a=7.5,b=2,c=3.6,表达式a>b && c>a∣∣ab的值是 0 。 ⒀while(x)表示while(x = =1 )。 ⒁while(1){?}表示 循环条件永远为真 。
11
⒂程序段:for (i=1;i<=2;i++)
{ scanf(“%d,%d”,&x,&y);
if (x>y){ t=x;x=y;y=-t;} printf(“%d %d”,x,y); }
执行该程序段时,若键盘输入5,4回车及1,2回车,则输出结果为 4,-5,1,2 。 ⒃执行下列语句: for (i=1,s=0; i<=2;i++)
for(j=1;j<=3;j++)
{s=s+i+j;} 后,s的值为 21 。
⒄执行下列语句: scanf (“%c”,&ch);
while(ch!=‘#’)
{ printf(“%c”,ch+1);scanf(“%c”, &ch);} 要使得输出结果为cdef,则输入为 BCDE# 。
⒅下列程序段的运行结果是:#####.......#110 。
for (i=4; i>=1; i--)
for (j=1; j<=i; j++) putchar(‘#’);
⒆下列程序段要求从键盘输入字符,当输入字母为Y时,循环停止,填空。 While ( getchar() !=‘Y’) {??} ⒇若有以下定义:
double w[10];
则w数组元素下标的上限为 9 ,下限为 0 。
(1) 设a,b,c,x,y,z均为int型变量,则表达式x=(y=(z=6)+2)/5的结果为 1 。
(2) 若有说明int x=10,y=20;则 语句printf(“%3x\\n”,(x%y,x-y,x+y));的输出结果为 。 (3) 在C语言中,一个函数一般由两部分组成,它们是 一个主函数 和若干个函数 。 (4) 在C语言中,一个函数的范围是以 { 开始的,以 } 结束的。
(5) 如果调用fopen函数不成功,则函数的返回值为 0 ,如果调用fclose函数不成功,则函数的返回值为-1 。 (6) 若有说明int a=1234;则 语句printf(“d\\n”,a++);的输出结果为是 0 1 2 3 4 。 (7) 一个C程序是由若干个函数构成的,其中必须有一个 main 函数。 (8) 在C语言中,用 1 表示真值,用 0 表示假值。
(9) 在C语言的文件系统中,最重要的概念是“文件指针”,定义文件指针的方法为: fire *fp,其中fp是一个指向 文件 类
型结构体的指针变量。
⑾下面程序段的运行结果是 hello 。
char s[80],*sp=“HELLO!”;
12
sp=strcpy (s,sp);s[0]=‘h’;puts(s);
⑿下面程序段的运行结果是 1.2.3.4 。
char a[]=“12345”,*p; int s=0
for (p=a;*p!=‘\\0’; p++)s=10*s+*p-‘0’; printf(“%d\\n”,s)
⒀下面程序段的运行结果是 p*p+p+1+ -* 。
char *p=“PDP1-0”; int i,d; for (i=0; i<6; i++) { d=*(p+i);
if (d!=0) printf(“%c*”,*(p+i); }
⒁下面程序段的运行结果是 *2*4*6*8* 。
char a[]=“123456789”,*p; int i=0; p=a; while(*p)
{ if(i%2==0) *p=‘*’; p++; i++; } printf(“%s”,a);
⒂凡不要求带回函数值的函数,一般应定义为 类型。
⒃如果在同一个源文件中,外部变量与局部变量同名,则在 范围内,外部变量不起作用。 ⒄在C程序中,*作为双目运算符时表示的是 乘法运算 而作为单目运算时表示的是 指针运算 。 ⒅在C程序中,注释部分以\\* 开始, 以 *\\ 结束。
⒆若采用十进制数的表示方法,则077 63 ,0x29是 41 。
⒇在C程序中,&作为双目运算时表示的是 换位与运算符 而作为单目运算时表示的是 仅地址运算符 ,表达式5&7的值是 5 ⑴以下定义
static int a[10]={1};
只初始化数组元素 1 ,其它数组元素值为 0 。 ⑵定义int a[]={0,1,2,3,},*p=&a[1];则++(*p)的值是 2 。 ⑶定义int a[]={0,1,2,3,},*p=&a[2];则*--p的值是 1 。
⑷定义int a[]={2,4,6,8,10,12},*p=a; 则*(p+1)的值是 4 ,*(a+5)的值是 12 。 ⑸在C语言中文本的存取是以 字节 为单位的。
13
三.判断题
⑴C源程序是有多个函数组成的,程序的执行是按书写顺序进行的
⑵C语言中,非0值作为true,0作为false;若表达式取得true值时、结果为1,取得false值时,为0。
⑶为了确保表达式n/2的值为float型,可写成float(n/2)。 ⑷getchar( )和scanf( )均为输入函数,它们之间可通用,没有任何区别。 ⑸putchar( )函数的作用是输出一串字符。 ⑹使用scanf( )函数,在输入数据时,若遇非法输入则认为该数据输入结束。 ⑺在C中所使用的变量必须先定义后使用 ⑻在C程序中,运算符%仅能用于整形数的运算。 ⑼#include和#define不是C语句。 ⑽C程序的每一行结束都有一个“;”。
⑾APH与aph分别表示不同的变量。 ⑿设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为0。 ⒀C语言中无逻辑变量,也无逻辑表达式。 ⒁语句for (i=0;i==10;i++) {---};至多循环10次。 ⒂下面的循环不能正常结束。
for (s=0,i=1;i<=10;) {s=s+i;i++;}
⒃下列程段将输出3和0
int x=3;
do {printf(“%d\\n”,x-=2);} while (!-x);
⒄C允许对数组的大小作动态定义,既可用变量定义数组的大小。 ⒅字符数组不要求他的最后一个字符为‘\\0’,甚至可以不包括‘\\0’。 ⒆数组定义int a[10];也可以写成int a(10); ⒇在对全部数组元素赋初值时,可以不指定数组长度。 ⑴static char c[]={“a book”};与static char c[]=“a book”;等价。 ⑵指针变量用于存放指针所指对象的地址。 ⑶指针就是变量的地址。 ⑷“指针”与“指针变量”是同一个概念。 ⑸可以给指针变量赋一个整型值。 ⑹所谓数组的指针就是指数组元素的地址。 ⑺若定义int a[5],*p=a;则*&a[5]是对a数组元素的正确引用。 四、阅读程序。
① 写出下面程序运行后的输出结果。
#include “stdio.h” #include “math.h” main( )
{ int a=1,b=4,c=2;
float x=5.5,y=9,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\\n”,z); } ② 写出下面程序运行后的输出结果。
14
# define N 5 main( )
{ int a[N]={8,6,5,4,1},i,temp;
for(i=0;i { temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } for(i=0;i scanf(“%c”,&ch); ch=(ch>=‘A’&& ch<=‘Z’)?(ch+32):ch; printf(“%c”,ch); } ⑸写出下面程序运行后的输出结果。 main( ) { int i=1; while(i<=15) if(++i%3!=2)continue; else printf(“%d ”,i); printf(“\\n”); } ⑺阅读以下程序,说明此程序可实现什么功能? main( ) { int a, b,i,j,m ; scanf(“%/d, %/d”,&a,&b); if(a { m=i%j; i=j; j=m; } printf(“%d\\n”,i);} 1 4 5 6 8 大小写转换 15 } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C程序设计考试复习题(3)在线全文阅读。
相关推荐: