习题三

1.打印一个整型数据,要求这个数为负数前面输出负号,这个数为正数前面输出正号。

printf("%+d", n);

注:在printf输出控制中+表示输出符号(正号或负号)。-表示结果左对齐,右边填空格,如果不加则表示右对齐。

例如:printf("%-8+d", n);  //宽度为8左对齐带符号输出

2.下面代码的输出结果为?

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int x = 3, y = 4, z = 5;

printf("%d", ~((x ^ y) && !z));

return EXIT_SUCCESS;

}

输出:-1

分析:x^y的结果为真,!z的结果为假,所以整个&&的判断结果为假,所以即判断结果为0,~0得到全1的一个数,如果按%d输出为整型,则正好是-1。

-1的原码为1000 0000 0000 0000 0000 0000 0000 0001,

补码为符号位不变,其余位全部取反最后再加1,即

1111 1111 1111 1111 1111 1111 1111 1110+1得到

1111 1111 1111 1111 1111 1111 1111 1111

3.下面代码的输出为?

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int a[100][200];

printf("%d", &a[37][45] - &a[0][3]);

return EXIT_SUCCESS;

}

输出:7442

分析:37*100+42,详细的参加指针的加减法。

4.下面代码的输出结果为?

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int (*ptr)[5] = (int(*)[5]) 100;

printf("%d", (int) (&(*(ptr + 1))[2]));

return EXIT_SUCCESS;

}

输出:128

分析:ptr为数组指针,所以ptr+1即会往后指一个数组的长度,即到达100+5*sizeof(int)=120,然后取第二个单元的值,也就是再加上便宜2*sizeof(int)=8,最后得到128。

时间: 2024-11-08 22:01:53

习题三的相关文章

操作系统概述习题三

习题三 2.批处理的主要缺点是无交互性 当计算机提供用户态和核心态时,输入/输出指令必须在核心态下执行 操作系统采用多道程序设计技术的主要原因是为了提高利用率和系统吞吐量 操作系统中,通道技术是一种硬件技术 3.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入指令 系统调用功能是操作系统向用户提供的接口 用户及其应用程序和应用系统是通过系统调用提供的支持和服务来使系统资源完成其操作 4.中断处理是操作系统必须提供的操作 5.用户程序在用户态下要使用特权指令而引起的中断属于访

软件工程P37习题三程序代码

//软件工程作业P37第三题   import java.util.Arrays;       //假设传入的数组是{how,are,you}   public class Test0001 {   public void theExchangeOfWords(String[] a){   for (int i = 0; i < a.length/2; i++) {   String temp;   temp=a[i];   a[i]=a[a.length-1-i];   a[a.length-

习题三——C语言笔试题

1.下面的程序片段的输出为? #include <stdio.h> #include <string.h> int main(void) { char str[]="h\t\"\\/\012\00034"; printf("%d", strlen(str)); } 分析:主要考察的是转义字符和strlen库函数的使用.\t和\"以及\\分别是用\符号表示其后的为转义符,这三个转义符分别为报警符."和\三个符号:在

C++习题三10、11题

10.  某单位的职工工资包括基本工资Wage,岗位巾Subsidy,房租Rent,水费Waterfee,电费Elecfee,设计实现工资管理的类Salary,该类的形式如下: class salary{ private: double wage,subsidy,rent,waterfee,elecfee; public: salary(-----){初始化工资数据的各分项} salary(){初始化工资的各分项数据为0} void setXX (double f){xx=f;} double 

C++习题三12题

12.设计一个整型链表类list,能够实现链表节点的插入(insert).删除(delete),以及链表数据的输出操作(print) #include<iostream> using namespace std; class intLinkList{ private: int *list; int size; int length; public: intLinkList(int s){ list = new int[s]; size=s;  length = 0; } int insert(

算法导论第四版学习——习题三Collinear Points

题目正文: http://coursera.cs.princeton.edu/algs4/assignments/collinear.html 作业难点: 1.仔细思考会感觉有很多实现方法,但是如果没有适当使用排序,算法时间复杂度就会轻易超过要求.(包括暴力算法) 2.隐含需要实现自己的数据结构用来组织“线”的集合,当然也可以用Stack或者Queue或者LinkedList,但是我个人是自己实现的. 3.由于一条线段只能出现一次,所以有一个去重的问题.(最难) 作业技巧: 1.基本按照题目的先

ajax练习习题三搜索

做一个汽车搜索页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&quo

习题三1004

Problem D TimeLimit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K(Java/Other) Problem Description Anumber whose only prime factors are 2,3,5 or 7 is called a humble number. Thesequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20,

习题三 11-15

11.设函数\(f(x)\)在\((a,+\infty)\)上单调上升,\(\lim\limits_{n\rightarrow\infty}x_n=+\infty\).证明:若\(\lim\limits_{n\rightarrow\infty}f(x_n)=A\),则\(\lim\limits_{x\rightarrow+\infty}f(x)=A\). 证明 \(\forall M>0,\exists N_0>0,\)当\(n>N_0,x_n>M\), \(\forall\var