资源描述
习题1
一、选择题1.所有C函数的结构都包括的三局部是( 语句、花括号和函数体 函数名、语句和函数体 函数名、形式参数和函数体 形式参数、语句和函数体 C程序由()组成。
子程序 B.主程序和子程序)°
A.
B.
C.
D.
2.
A.
C.函数D.过程
3. 下面属于C语言标识符的是(A. 2abB. @f
4. Ci吾言中主函数的个数是(A. 2个B. I个
)°C. ?b
)。
D. a12C.任意个
5. 以下关于C语言注释的表达中错误的选项是(以“/*”开头并以“矿'结尾的字符串为C语言的注释内容
A. 注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义程序编译时,不对注释作任何处理
B. 程序编译时,需要对注释进行处理 以下不是C语言的分隔符的是()。
A.逗号 B.空格 C.制表符以下关于C语言的关键字的表达中错误的选项是(
D. 10 个)。
)。
D.双引号A.
B.
C.
D.
关键字是C语言规定的具有特定意义的字符串,通常也称保存字 用户定义的标识符不应与关键字相同ANSI C标准规定的关键字有64个
ANSI C标准规定的关键字有32个
8. 在Visual C++ 6.0环境下,C源程序文件名的默认后缀是(
A. .cppB. .exeC. .objD. .dsp假设在当前目录下新建一个名为“LX”的工程,那么在当前目录下生成的工作区文 件名为(
)。
C. LX.DSP)°
A. LX.DSW B. LX.OPT
10 •面可能不影响程序正常运行的是(
A.语法错误 B.逻辑错误二、填空题
1. C程序是由构成的,一个C程序中至少包含
是C程序的根本单位。
2. C程序注释是由和)。
C.警告提示D.
D. LX.C算法错误
o因此,•所界定的文字信息组成的。
1. 设有数组定义为:char array []=”China”;那么数组array所占的空间为°
2. main()
( char arr[2][4];
strcpy(arr,"youn); strcpy(arr[ I
arr[0][3]='&,;
printf(u%s\nn,arr);
}
程序执行后的输出结果是O
3. main()
{ inti,k,a[10],p[3]:
k=5;
for (i=0;ivl0;i++) a[i]=i;
for (i=0;iv3;i++) p[i]=a[i*(i+l)];
for (i=0;iv3;i++) k=k+p[i]*2;
prinlf(”%d\n”,k);
}
程序执行后的输出结果是。
4. main()
( charch[7J=( ”65ab21”};
int i,s=0
fbr(i=0;ch[i]>=,0, && ch[i]v='9';i+=2)s=10*s+ch[i]-'0,;
printf(u%d\nM,s);
}
程序运行的结果是o
三、程序设计题
1. 从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个 元素对换,即:第1个元素和第10个元素互换,第二个元素和第9个元素互换……分别 输出数组原来的值和对换后各元素的值。
2. 设有如下两组数组:
A: 2, 8, 7, 6, 4, 28, 70, 25
B: 79, 27, 32, 41, 57, 66, 78, 80
编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标 的元素相加,即2+79, 8+27……并把相应的结果放入第三个数组中,最后输出第三个数 组的值。
3. 编写程序,把下面的数据输入到一个二维数组中:
2536781312268893
7518223256 443658
然后执行以下操作:
a. 输出矩阵两条对角线上的数;交换第一行和第三行的位置,然后输出。
习题6
一、选择题
1. 以下正确的函数定义形式是()0
A. double fun(int x, int y)
B. double fun(int x ;int y)
C. double fun(int x, int y);
D. double fun(int x,y);
2. 在C语言中,以下说法不正确的选项是()o
A. 实参可以是常量、变量或表达式
B. 形参可以是常量、变量或表达式
C. 实参可以为任意类型
D. 形参应与其对应的实参类型一致
3. 以下说法正确的选项是()。
A. 定义函数时,形参的类型说明可以放在函数体内
B. return后边的值不能为表达式
C. 如果函数值的类型与返回值类型不一致,以函数值类型为准
D. 如果形参与实参的类型不一致,以实参类型为准
)o
4. C语言允许函数值类型缺省定义,此时该函数值默认的类型是(
A. float 型
B. int 型
C. long 型
D. double 型
5. C语言规定,函数返回值的类型是由()o
A. return语句中的表达式类型所决定
B. 调用该函数时的主调函数类型所决定
C. 调用该函数时系统临时决定
D. 在定义该函数时所指定的函数类型所决定
6. 以下错误的描述是()。
函数调用可以:
A. 出现在执行语句中
B. 出现在一个表达式中
C. 作为一个函数的实参
D. 作为一个函数的形参
7. 以下正确的描述是( )o
在C语言程序中:
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可嵌套,但函数的调用可以嵌套
C. 函数的定义和函数的调用均不可以嵌套
D. 函数的定义和调用均可以嵌套
8. 在一个C源程序文件中,假设要定义一个只允许根源文件中所有函数使用的全局 变量,那么该变量需要使用的存储类别是( )o
A. externB. registerC. autoD. static
9. 假设有以下宏定义:
#define N 2
#define Y(n) ((N+l)*n)
那么执行语句Z=2* (N+Y (5));后结果是()o
A.语句有误B. Z=34 C. Z=70 D. Z无定值
10. 在宏定义#define PI 3.14159中,用宏名PI代替一个()。
A. 常量B.单精度数C.双精度数D.字符串二填空题
1. 以下程序的运行结果是O
#include "stdio.h"
void main()
{int I=2,x=5,j=7;
fun(j,6);printf(',I=%d;j=%d;x=%d\n",I,j,x);
}
fun(int I,int j)
{int x=7;
printf("I=%d;j=%d;x=%d\n",I,j,x);
}
2. 以下程序的运行结果是。
#include "stdio.h"
void main()void increment();
increment();increinent();
increment();
}
void increinent()
(
int x=0;
x+=l; printf(”%d ”,x);
}以下程序的运行结果是,
#include "stdio.h"
void main()
(int max(int x,int y);
int a=l,b=2,c;c=max(a,b);
printf("max is %d\n",c);
)
int max(int x,int y)
(int z;
z=(x>y)?x:y;return(z);
}以下程序的运行结果是
#include "stdio.h"
void main()void add(int x,int y, ini z);
int x=2,y=3,z=0;printf(,,(l)x=%d y=%d z=%d\n",x,y,z);
add(x,y,z);printf(H(3)x=%d y=%d z=%d\n",x,y,z);
}
void add(int xjnt y, int z)
( z=x+y;x=x*x;
y=y*y;printf(H(2)x=%d y=%d z=%d\n”,x,y,z);
}
三、程序设计题
1. 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否 是素数的信息。要求:
(1) 编写一个函数prime(n),返回给定整数n是否为素数。
(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数, 并输出结果。
2. 函数fun的功能是:统计各年龄段的人数并存到b数组中,n个人员的年龄放在 a数组中。年龄为1到9的人数存到b[0]中,年龄为10到19的人数存到b[l],年龄为 20到29的人数存到M2],年龄为30到39的人数存到b[3],年龄为40到49的人数 存到b[4],年龄为50岁以上的人数存到b[5]中。
例如,当a数组中的数据为:
9、 18、 27、 38、 59、 33、 14、 75、 38。
调用该函数后,b数组中存放的数据应是:
1、2、1、3、()、2o
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你 编写的假设干语句。
#include "stdio.h"
void fun(int a[], int bf], int n)
I
void main()
(int i,a[100]={9,l 8,27,38,59,33,14,75,38 ),b[6]=( 0);
fun(a,b,9);printf("The result is:");
for (i=0; iv6;i++)printf(H%d ”,b[i]);
习题7
一、单项选择题
1. 设有定义:int nl=0,n2,*p=&n2,*q=&nl;以下赋值语句中与n2=n 1;语句等价的 是()。
A.*p=*q; B.p=q; C.*p=&nl;D.p=*q;
2. 假设有定义:int x=0, *p=&x;,那么语句printf ("%d\n",*p);的输出结果是()。
A.随机值B.O C.x的地址 D.p的地址
3. 以下定义语句中正确的选项是()。
A. char a='A'b=B;B. float a=b= 10.0;
C. int a=10,*b=&a; D. float *a,b=&a;
4. 有以下程序main ()
(int a=7,b=8,*p,*q,*r;p=&a;q=&b;
r=p; p=q; q=r;printf (”%d,%d,%d,%d\n”,*p,*q,a,b);
)程序运行后的输出结果是()。
A. 8,7,8,7B. 7,8,7,8C. 8,7,7,8 D. 7,8,8,7
5. 设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()。
A. scanf ( "%d”,pA); B. scanf ( "%d”,A);
C. scanf ( "%d”,&pA); D. scanf ( "%d”,*pA);
6. 设有定义:int n=0,*p=&n,**q=&p;那么以下选项中,正确的赋值语句是()。
A.p=l; B.*q=2; C.q=p; D.*p=5;
7. 有以下程序void fun (char *a, char *b)
( a=b;(*A)++; )main ()
{ char cl='A',c2='a', *pl,*p2;pl=&cl; p2=&c2; fun (pl,p2);
printf ( "%c%c\n” ,cl,c2);)
程序运行后的输出结果是()。
A. Ab B. aa C. AaD. Bb
8. 假设程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是 ()。
A. float *i=NULL;B. float a,*f=&a;scanf (”&d”,f);
C. char*c=&t;
*c=&t;
9. 有以下程序
#include <stdio.h>
main ()
( printf (,,%d\n,\ NULL);
程序运行后的输出结果是(
A. 0B. 1
10. 己定义以下函数:
fun (int*p)
( return*p; )
该函数的返回值是()。
A.不确定的值
C.形参p所指存储单元中的值
scanf (”&d”,f);
C. char*c=&t;
*c=&t;
11. 有以下程序
#include <stdio.h>
main ()
( printf (,,%d\n,\ NULL);
程序运行后的输出结果是(
A. 0B. 1
12. 己定义以下函数:
fun (int*p)
( return*p; )
该函数的返回值是()。
A.不确定的值
C.形参p所指存储单元中的值
*f=10.5;
D. long *L;
L=\();
C.-1
D. NULL没定义,出错
B,形参p中存放的值
D.形参p的地址值
11. 以下函数定义中,会出现编译错误的选项是()。
A.void max (int x, int y,int *z) B. int max (int x,y) ( *z=x>y ? x:y;)
C. max (int x,int y) { int z;
z=x>y?x:y; return (z)
1 int z ;
z=x>y ? x:y; return z ;
)
D. int max (int x,int y)
( return (x>y?x:y) ; }
12.有以下程序段:
main (){ int a=5, *b, c=&b;b=&a;
程序在执行了 c=&b:b=&a;语句后,表达式:**c的值是()。
A. 变量a的地址B,变量b中的值C.变量a中的值 D.变量b的地址
13. 有以下程序:
main ()( char a,b,c,*d;
a='\'; b='\xbc';c='\Oxab'; d=”\017”;
print (H%c%c%c\n",a,b,c,*d);编译时出现错误,以下表达中正确的选项是()。
A.程序中只有a=' \';语句不正确B.b= '\xbc';语句不正确语句
语句
C. d=,,\OI7";语句不正确D. a=' \';和。='\Oxab'都不正确
14. 假设有以下定义和语句:
#include <stdio.h>int a=4,b=3,*p,*q,*w;
p=&a; q=&b; w=q; q=NULL;那么以下选项中错误的语句是()。
A. *q=0; B. w=p; C. *p=a; D. *p=*w;
15. 有以下程序:
#include <stdio.h>int *f(int *x,int *y)
(if(*x<*y)
return x;else
return y;}
void main(){
int a=7,b=8,*p,*q,r;p=&a;
q=&b;r=*f(p,q);
printf(H%d ,%d,%d\n ”,a,b,r);)
程序运行后输出结果是()。
A. 7,8,8B. 7,8,7C. 8,7,7D. 8,7,8
16. 假设有说明:intn=2,*p=&n,*q=p;,那么以下非法的赋值语句是()。
A. p=q;B. *p=*q; C. n=*q; D. p=n;
17. 有以下程序:
void fun (char *c,int d)(*c=*c+l;d=d+l;
printf ( "%c,%c," ,*c,d);main ()
{ chara='A',b='a';fun (&b,A); printf ( "%c,%c\n" ,a,b);
)程序运行后的输出结果是()。
A.B,a,B,a B. a,B,a,B C. A,b,A,b D. b,B,A,b
18. 假设有说明语句:int a,b,c,*d=&c;,那么能从键盘读入三个整数分别赋给变量a、 c的语句是()。
A. scanf (”%d%d%d”,&a,&b,d) ; B. scanf (”%d%d%d”,&a,&b,&d);C. scanf (”%d%d%d”,a,b,d) ; D. scanf (”%d%d%d”,a,b,*d);
19. 假设定义:inta=511,*b=&a;,那么 printf (”%d\n”,*b);的输出结果为()。
A.无确定值B.a的地址 C.512D.511
20. 假设有说明:int i,j=2, *p=&i;,那么能完成i=j赋值功能的语句是()。
A. i=*p; B. p*=*&j; C. i=&j; D. i=**p;二、填空题
1. 有以下程序
void f ( int y,int *x){y=y+*X; *X=*X+y;}
main ()
( int x=2,y=4;f (y,&x);
printf ("%d%d\n”,x,y);
)
执行后输出的结果是 O下面程序的运行结果是 o
void swap (int *a,int *b)
{ int *t;t=a; a=b; b=t;
)
main ()
( int x=3,y=5,*p=&x,*q=&y;swap (p,q);
printf ("%d%d\n" ,*p,*q);
}设有以下程序:
main ()
{ int a, b, k=4, m=6, *pl=&k, *p2=&m;a=pl=&m;
3. 开发一个C程序要经过编辑、编译、
4. 在C语言中,
5. 在C语言中,
6. 在C语言中,
7. 在C语言中,
和运行4个步骤。
包含头文件的预处理命令以开头。
主函数名是。
行注释符是o头文件的扩展名是o
8. 在Visual C++ 6.0 IDE中,按下Ctrl键的同时按键,可以运行可执行程序文
件。
9. 在Visual C 6.0环境中用RUN命令运行一个C程序时,这时所运行的程序的后缀是o
10. C语言源程序文件的扩展名是;经过编译后,生成文件的后缀是;经过连接后,生成文件的扩展名是。
三、程序设计题编写程序输出以以下图案
* s **
1. 试编写一个C程序,输出如下信息。
ejCYou are welcome!
2. 编写程序,分别用scanf函数和getchar函数读入两个字符送给变量cl、c2,然 后分别用putchar函数和printf函数输出这两个字符。上机运行此程序,比拟用 putchar函数和printf函数输出字符的特点。
习题2
1. 简述算法的概念。
2. 算法应具备哪些特性?
3. 分别说明什么是自然语言描述法,什么是框图语言描述法,什么是伪语言描述法,什 么是N-S流程图语言描述法,它们的优缺点各是什么?
4. 在结构化程序设计方法中,有哪几种根本结构?
5. 请用程序流程图语言和N-S流程图语言分别写出打印乘法九九口诀表的算法。
6.
7.
8.
9.
编写例2-1的程序。
编写例2-2的程序。
编写例2-4的程序。
编写例2-5的程序。
仿照例2-3的程序,依照流程图, 仿照例2-3的程序,依照流程图, 仿照例2-3的程序,依照流程图, 仿照例2-3的程序,依照流程图, b= (*pl) / (*p2) +7;printf ("a=%d\n" ,A);
printf ("b=%d\n" ,b);)
执行该程序后,a的值为 , b的值为。
3. 以下程序的输出结果是 ovoid fun (int *n)
{ while ( (*n)—);printf ("%d" ,++ (*n));
}main ()
{ int a=100;fun (&A);
)
4. 以下函数用来求出两整数之和,并通过形参将结果传回,试完整程序。
void func (int x,int y,z)(*z=x+y;}
5. 函数 void fun (float *sn, int n)的功能是:根据公式 s=l-l/3+l/5-...l/(2n+l)计算 S, 计算结果通过形参指针sn传回;I】通过形参传入,n的值大于等于Oo试完整程序。
void fun ( float *sn, int n){ float s=0.0, w, f=-1.0;
int i=0;for (i=0; i<=n; i++) { f=* f;
w=f/ (2*i+l);s+=w;
}
6. 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换,试完整程 序。
exchange (int *x, int *y)( int t;
t=*y;*y= ;*x= ;}
7. 下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值,试完整程 序。
int add (int x,int y, z)( =x+y;}
三、程序设计题编写一个函数,将数组中n个数按反序存放。
1. 用地址法输入输出二维数组各元素。
2. 用指针法输入输出二维数组各元素。
6.1习题8
一、单项选择题
1. 设有定 义语句 " struct (int x;int y;} d[2]={ {1,3},{2,7}}; ”,那么printf("%d\n”,d[O].y/d[O].x*d[l].x);的输出结果是()。
A. 0 B. 1 C. 3D.6
2. 设有定义语句"enum team( my,your=4,his,her=his+10),贝U printf(“%d, %d, %d, %d\n ", my, your, his, her);的输出结果是()。
A.0, 1, 2, 3B.0, 4, 0, 10 C.0, 4, 5, 15 D. i, 4, 5, 15
3. 以下对枚举类型名的定义中正确的选项是()。
A. enum a={one,two,three);B. enum a (al,a2,a3J;C. enum a={T,'2','3'};D. enum a{“one”,”two”,”three”};
4. 假设有如下定义,那么 printf("%d\n”,sizeof(them));的输出是()。
typedef union (long x[2];int y[4];char z[8];)MYTYPE;
MYTYPE them;A. 32 B. 16 C. 8 D. 24
5. 设有以下说明和定义:
typedef union {long i;int k[5];char c;) DATE;struct date {int cat;DATE cow; double dog;(too;
DATE max;
那么以下语句的执行结果是()。
printf("%d",sizeof(struct date)+sizeof(max));A, 26B.30 C. 18 D. 8
6. 根据下面的定义,能打印出字母M的语句是()0struct person {char name[9];int age;};
struct person c[10]=( “John”, 17,"Paul", 19,"Mary”, 18,”Adam", 16};A. printf(t<%c,,,c[3].name)B. printf("%c”,c[3].name[l]);
C. printf(<<%c,,,c[2].name[ 1 ]);D. printf("%c",c[2].name[0]);
7. 设有如下定义,那么对data中的a成员的正确引用是()。
struct sk{int a;float b;} data,*p=&data;
8. 以下结构体类型说明和变量定义中正确的选项是()。
B. struct REC;
(int n; char c;};
RECtl,t2;
D. struct
{int n;char c;)REC
A. typedef struct{int n; char c;)REC;
RECtl,t2;C. typedef struct REC ;
{int n=0; char c='A';}tl,t2;
9. 现有以下结构体说明和变量定义,如以下图所示,指针p、q、r分别指向一个链表中连续的三个结点。
struct node (char data;struct node *next;
)*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语
句是()oA.q->next=r->next;p->next=r;r->next=q
B. p->next=r;q->next=r->next;r->next=qq->next=r->next;r->next=q;q->next=r D. r->next=q;p->next=r;r->next=q->next
二、填空题
1. 称为运算符,称为运算符。
2. 设有定义语句 ustruct {int a; float b; char c; }abc, *pabc=&abc;n 那么对结构型成员a的引用方法可以是:、 、 、
3. 假设有以下说明和定义语句,那么变量w在内存中所占的字节数是union aa(float x; float y; char c[6];(;
struct st (union aa v; float w[5J; double avc;}w;三、程序分析题
1. 阅读以下程序,写出运行结果。(字符0的ASCII码为十六进制的30)
main()
( union (char c; char i[4J;)z;
z.i[0]=0x39; z.i[l]=0x36;
printf("%c\n”,z.c);
1
2. 阅读程序,写出程序的运行结果。
main()
(struct student
( char name [10];float k 1;
float k2;囱2]={{“zhong”, 100,70}, {“wang”,70,80}} ,*p=a; printf (u\nname:%s total=%f\p->name, p->kl+p->k2);
printf("\nname:%s total=%f\n,\ a[l].name,a[l].kl +a[l].k2);
}
3. 阅读程序,写出程序的运行结果。
main()
(enum em{em 1 =3,em2= 1 ,em3};
char *aa[]={“AA”,”BB”,”CC”,”DD”};
printf("%s%s%s\n", aa[em 1 ],aa[em2],aa[em3]);
}
4. 阅读程序,写出程序的运行结果。
#include <stdio.h>
#includc <string.h>
typedef struct { char namef9]; char sex; float scoref21; } STU;
void 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.scorefi]=b.score[il;
}
main()
{ STU c={"Qian",'p',95.0,92.0};
Rc); printf(4t%s,%c,%2.0f,%2.0f\n,,,c.name,c.sex,c.score[0],c.score[l]);
}
5. 阅读程序,写出程序的运行结果。
#include <string.h>
struct STU
( int num;
float TotalScore;
1;
void f(struct STU p)
{ struct STU s[2]=((20XX8,550},{20XX9,537)};
p.num=s[l].num;
p.TotalScore=s[ 1 J.TotalScore;
1main()
{ struct STU s[2]={(20XX8,703},(20XX9,580)};
f(s[()l);
printf(u%d %f\n,,,s[0].num,s[0].TotalScore);}
四、程序设计题用结构体存放下表中的数据,然后输出每人的姓名和实发工资(根本工资+ 浮开工资■支出)。
姓名
根本工资
浮开工资
支日
Tom
1240.00
800.00
75.0
Lucy
1360.00
900.00
50.0
Jack
1560.00
100()
80.()
1. 编写程序,输入10个学生的学号、姓名、3门课程的成绩,求出总分最高的 学生姓名并输出。
2. 编写程序,输入以下学生成绩表中的数据,并用结构体数组存放。然后统计 并输出三门课程的名称和平均分数。
studentname
面向对象程序设计(C#)
SQLSERVER
C语言程序设t
Lincoln
97.5
89.0
78.0
Clinton
90.0
93.0
87.5
Bush
75.0
79.5
68.5
Obama
82.5
69.5
54.0
3. 设有a、b两个单链表。每个链表的结点中有一个数据和指向下一结点的指针,a、b为两链表的头指针:
(1) 分别建立这两个链表。
(2) 将a链表中的所有数据相加并输出其和。
(3) 将b链表接在a链表的尾部连成一个链表。
习题9
一、选择题 以下关于位运算的表达错误的选项是()0
A、位操作是对字节或字节内部二进制位进行测试、设置、移位或逻辑的运算B、按位取反运算的运算规那么是:()的按位取反结果为1, 1的按位取反结果为0
C、对于无符号数而言,左移位相当于乘2运算,左移n位相当于乘2的n次方D、对于无符号数而言,右移位相当于乘2运算,右移n位相当于乘2的n次方
1. 设x=2, y=3,那么表达式xVVy的值为()。
A、9B、8C、16D、5 以下程序运行时,如果输入4和3那么输出结果是()o
#include <stdio.h>void main()
(int a,b,e;
puts(”请输入a和b的值:”); scanf(”%d”,&a);scanf(”%d”,&b);
e=a«b;printf("%d\n",e);
}A、-17B、-256C、32D、5
2. 以下程序的输出结果是()。
#include <stdio.h>void main()
int x; long y;long z; x=32;
y=-8;z=x&y|y;
printf(M%ld\nu,z);)
A、-17B、-8C、16D、5阅读以下程序,判断在输入“1, 2”时,程序输出的c值为()。
#include <stdio.h>void main()
{int a;
long b;long c;
puts(”请输入a和b的值:\n”);scanf(”%ld,%ld”,&a,&b);
c=(aAb)&(~b);printf("Thc value of c is %ld\n",c);
}C、1D、2
C、~D、&
C、1D、2
C、~D、&
A、-1B、-2 以下运算符的优先级最高的是()。
A、|B、 + 以下程序输出的p值为()o
#include <stdio.h> void main()(
int m=3;
long n=5;
long p; p=(nv<m)+(m*n);
printf("The value of p is %ld\n",p);
A、-40B、-45
C、40
3. 在移位运算中,对于无符号数,左移n位相当于()A、该数乘以2的n-1次方
B、该数除以2的n-1次方C、该数乘以2的n次方
D、该数除以2的n次方仔细阅读以下程序,判断以下程序在输入“1, 2”时任 #include <stdio.h>
void main。
(
int x;
long y;
long z;
int a,b ;puts(”请输入X和y的值:\n”); 冲 scanf("%d,%ld",&x,&y);
x&=y;
z=x&〜y;
a=sizeof(x);
b=sizeof(z);
printf(”%ld %d %d\n”,z,a,b);A、0
B、IC、784
D、0781().有以下程序:
#include <stdio.h> void main(){
char x=040;
printf(n%d\nM,x=x«l);程序运行后的输出结果是( )o
D、64
A、100B、160设有定义语句:
char a=3,b=6,c;)。
)。
那么执行赋值语句c=aAb«2;后变量c中的二进制值是(
A、00011011 B、(X)OIOIOOC、00011100
11. 有以下程序:
#include <stdio.h> void main(){
short int x=35;
char z='A';printf(”%d\n”,(x& 15)&&(zv'a')); } 程序运行后的输出结果是( A、 0B、 1
13.有以下程序: #include <stdio.h> void main()
printf(”%d\n”,(x& 15)&&(zv'a')); } 程序运行后的输出结果是( A、 0B、 1
13.有以下程序: #include <stdio.h> void main()
)。
C、2
D、3
short int a=5,b=6,c=7,d=8,m=2,n=2; printf(H%d\n",(m=a>b)&(n=c>d));
}
程序运行后的输出结果是(
A、0
二、填空题
1. 位操作可以分为两类,一类是
2. 位逻辑运算的四个操作符中
B、1
)°
C、2
D、3
—,一类是O
操作符的运算对象只有一个。
3. 移位运算中的无符号数右移时,左端空出的位补° 位运算符可以和赋值运算符构成位运算符。
4. 当参加位运算的两个操作数的长度不等时系统自动按。对于无符号数,系统在做对齐处理时,左端一律补。对于有符号数来说,正数
在做对齐处理时,左端补;负数在做对齐处理时,左端补o 位段结构的特殊性是其各个成员只能是型的。
5. 设变量a的二进制数是00101101,假设想通过运算a%使a的高四位取反,低四位不变,那么b的二进制数应是o
6. a为任意整数,能将变量a清0的表达式是-a为八进制数07101。能将变量a中的各二进制位均置成1的表达式是。
7. 能将两字节变量x的高8位全置1,低8位字节保持不变的表达式是。
8. 运用位运算,能将八进制数012500除以4,然后赋给变量a的表达式是。
9. 运用位运算,能将字符型变量ch中大写字母转换成小写字母的表达式 是 。
习题3
一、选择题
展开阅读全文