米醋电子类C语言基础部分测试题
一,填空题
-
(4分)在32位计算机上,int型变量常见的大小是( 4 )字节,( 32 )位.
-
(4分)在C语言循环语句中,用于跳出当前循环的语句是( break ),用于跳出当前循环剩余代码进入下一次循环的语句是( continue ).
-
(4分)设 a,b,c 都是 int 型变量,且 a=6,b=10,c=12.则表达式 c+=((a>b)||c)的c的结果为( 13 )表达式!(a<b)&&!c||1)的结果为( 1 ).
-
(3分)若有下面的代码段程序,则运行完该程序屏幕上显示( 3 )
#include <stdio.h> void exchange_num(int a,int b) { int c; a=b; b=c; } int main() { int d=2,e=3; exchange_num(d,e); printf("%d",e); return 0; } -
(2)在 32 位电脑上,一个存放 int 型变量的数组 a,其中最后一个元素为 a[8],则该数组占用的内存为( 36 )字节。(2分) 4*9
-
(2)设有 int a,*p;*p=&a;则指针p的值为( a )的地址。
-
(6)在 C语言中 0x 开头表示十六进制数(a-f分别对应 10-15),比如 0Xb3 转换成十进制是 113,转换为二进制为 1011 0011.运算符&是按位与,|是按位或。如 1101&0100=0100.则0xd3|0xc9=0x( db )转换成二进制是( 1101 1011 ).133|129 1101 0011|1100 1001=1101 1011 0xdb
二,选择题(每题5分)
- 以下变量名合法的是(B)
A.67num B._32student
C. float D.32_student
-
代码printf(“%3.2f”,a);中,表示输出的结果(D)
A.显示数字3.2 B.显示%3.2f C.显示一个浮点数,保留三位小数,宽度为2 D.显示一个浮点数,保留两位小数,宽度为3 -
设w,x,y,z,m均为int型,有w=1,x=1,y=3,z=4,执行以下程序段后,m的值为(A)
m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;
A.1 B.2 C.3 D.4 -
以下程序运行后,输出的结果是(C)
A.7 B.4 C.2 D.3void main() { int a=1,b=2,c=3; a+=b; switch(a) { case 1:c++; case 2:c--; case 3:c+=4; case 4:c-=5; } printf("%d",c); }-
以下程序运行后,输出的结果是(C)
A.3 B.2 C.4 D.5
void main() { int a,b=12,c; int d[3]; for(a=0;a<3;a++) { b+=4; 16 20 24 d[a]=b; } printf("%d",d[2]%5); }三,判断题(每题2分)
-
要让int型变量满足小于5且大于2的时候,屏幕显示你好,可以写成如下的形式 ( x )
if(2<a<5) { printf("你好"); } -
在C语言中,可以将一个整数赋值给一个字符变量 ( √ )
-
在C语言中,if必须有else语句作为分支 ( x )
-
在C语言中,switch只能测试整型表达式的值 ( √ )
-
如int占4个字节,C语言中的每种数据类型所占的字节数总是固定的 (x)
四,编程题(每题十分)
-
编写一个猜数游戏,让用户有5次机会猜该数字,每次猜完提示猜大了还是猜小了,猜错和猜对要有相应的提示,5次猜错结束游戏,也要有相应的提示,该中奖数字应方便调试修改.
#include <stdio.h> int num=66,i,j,k=0; int main() { printf("游戏开始,您共有五次机会\n"); for(i=0;i<5;i++) { printf("第%d次尝试,请输入您猜的数:",i+1); scanf("%d",&j); if(j>num) { printf("猜大了\n"); } else if(j<num) { printf("猜小了\n"); } else { printf("恭喜您,猜对了\n"); k=1; break; } } if(k==0) { printf("次数用尽,正确答案是%d",num); } return 0; } -
设计一个C程序,计算从1到N的所有整数的和,其中N由用户输入,需要有相关提示,例如,如果用户输入的是5,则计算1+2+3+4+5的结果并输出。
#include<stdio.h> int i,n; int sum=0; int main() { printf("请输入N:"); scanf("%d",&n); for(i=1;i<=n;i++) { sum+=i; } printf("结果为%d",sum); return 0; } -
设置一个进制转换程序,用户输入0-255的十进制数,然后输出十六进制0x** 和2进制 。如输入12,输出0X0C
0000 1100
#include <stdio.h> int main() { int dec_num, i; printf("请输入0-255之间的十进制整数:"); scanf("%d", &dec_num); if (dec_num < 0 || dec_num > 255) { printf("输入错误,请输入0到255之间的整数\n"); return 1; } printf("十六进制:0X%02X\n", dec_num); printf("二进制:"); for (i = 7; i >= 0; i--) { if (i == 3) { printf(" "); } printf("%d", (dec_num >> i) & 1); } printf("\n"); return 0; } -
计一个C程序,提示用户输入10个整数,范围0-9999,将用户输入的10个数字排序,形如a<b<c<…或者a>b>c>…
#include <stdio.h> int main() { int nums[10]; int i, j, temp; printf("请输入10个0-9999的整数:\n"); for (i = 0; i < 10; i++) { do { scanf("%d", &nums[i]); if (nums[i] < 0 || nums[i] > 9999) { printf("数值超出范围!重新输入第%d个数:", i+1); } } while (nums[i] < 0 || nums[i] > 9999); } for (i = 0; i < 9; i++) { for (j = 0; j < 9 - i; j++) { if (nums[j] > nums[j+1]) { temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } } printf("\n升序排序结果:%d", nums[0]); for (i = 1; i < 10; i++) { printf("<%d", nums[i]); } printf("\n"); return 0; }
-